From 3fecd79ab6675cee6a77492299122d7beb9acded Mon Sep 17 00:00:00 2001 From: Vojtech Knaisl Date: Wed, 16 Aug 2023 09:19:37 +0200 Subject: [PATCH] Initial Commit --- .github/workflows/build.yml | 140 ++++++ .gitignore | 2 + Dockerfile | 17 + LICENSE | 201 ++++++++ Makefile | 24 + README.md | 15 + assets/favicon.ico | Bin 0 -> 22382 bytes assets/logo.svg | 11 + assets/style.css | 53 ++ changelog.rst | 967 ++++++++++++++++++++++++++++++++++++ docker/default.conf | 17 + requirements.txt | 1 + scripts/main.py | 52 ++ 13 files changed, 1500 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 assets/favicon.ico create mode 100644 assets/logo.svg create mode 100644 assets/style.css create mode 100644 changelog.rst create mode 100644 docker/default.conf create mode 100644 requirements.txt create mode 100644 scripts/main.py diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..3ae9ab2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,140 @@ +name: Build + +on: + push: + +jobs: + package: + name: Build API Docs + runs-on: ubuntu-22.04 + + steps: + - name: Check out repository + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: 3.11 + + - name: Build + run: | + make build + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: output + path: ./output + + docker: + name: Docker + runs-on: ubuntu-22.04 + needs: [ package ] + + env: + PUBLIC_IMAGE_PREFIX: 'datastewardshipwizard' + IMAGE_NAME: 'guide-changelog' + DOCKER_META_CONTEXT: '.' + DOCKER_META_FILE: './Dockerfile' + DOCKER_META_PLATFORMS: 'linux/amd64,linux/arm64' + + steps: + - name: Check out repository + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + + - name: Create output dir + run: | + mkdir output + + - name: Download artifact + uses: actions/download-artifact@v3 + with: + name: output + path: ./output + + - name: Check artifact + run: | + ls -lah ./output + + # TEST DOCKER IMAGE BUILD + - name: Docker meta [test] + id: meta-test + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.PUBLIC_IMAGE_PREFIX }}/${{ env.IMAGE_NAME }} + tags: | + type=sha + + - name: Docker build [test] + uses: docker/build-push-action@v4 + with: + context: ${{ env.DOCKER_META_CONTEXT }} + file: ${{ env.DOCKER_META_FILE }} + platforms: ${{ env.DOCKER_META_PLATFORMS }} + push: false + tags: ${{ steps.meta-test.outputs.tags }} + labels: ${{ steps.meta-test.outputs.labels }} + + # PREPARE + - name: Docker login [docker.io] + if: github.event_name != 'pull_request' + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_PASSWORD }} + + # DEVELOPMENT IMAGES + - name: Docker meta [dev] + id: meta-dev + if: github.event_name != 'pull_request' + uses: docker/metadata-action@v4 + with: + images: | + ${{ secrets.DOCKER_HUB_USERNAME }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + + - name: Docker build+push [dev] + uses: docker/build-push-action@v4 + if: github.event_name != 'pull_request' && steps.meta-dev.outputs.tags != '' + with: + context: ${{ env.DOCKER_META_CONTEXT }} + file: ${{ env.DOCKER_META_FILE }} + platforms: ${{ env.DOCKER_META_PLATFORMS }} + push: true + tags: ${{ steps.meta-dev.outputs.tags }} + labels: ${{ steps.meta-dev.outputs.labels }} + + # PUBLIC IMAGES + - name: Docker meta [public] + id: meta-public + if: github.event_name != 'pull_request' + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.PUBLIC_IMAGE_PREFIX }}/${{ env.IMAGE_NAME }} + tags: | + type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }} + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}},enable=${{ !startsWith(github.ref, 'refs/tags/v0.') }} + + - name: Docker build+push [public] + uses: docker/build-push-action@v4 + if: github.event_name != 'pull_request' && steps.meta-public.outputs.tags != '' + with: + context: ${{ env.DOCKER_META_CONTEXT }} + file: ${{ env.DOCKER_META_FILE }} + platforms: ${{ env.DOCKER_META_PLATFORMS }} + push: true + tags: ${{ steps.meta-public.outputs.tags }} + labels: ${{ steps.meta-public.outputs.labels }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..923ae3f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +output +__pycache__ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2f8ae22 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM nginx + +COPY output /usr/share/nginx/html + +COPY docker/default.conf /etc/nginx/conf.d/default.conf + +RUN chown -R nginx:nginx /usr/share/nginx/html \ + && chmod -R 755 /usr/share/nginx/html \ + && chown -R nginx:nginx /var/cache/nginx \ + && chown -R nginx:nginx /var/log/nginx \ + && chown -R nginx:nginx /etc/nginx/conf.d \ + && touch /var/run/nginx.pid \ + && chown -R nginx:nginx /var/run/nginx.pid + +USER nginx + +EXPOSE 8080 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..fdbbf3e --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2023 Vojtěch Knaisl + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..aa3db35 --- /dev/null +++ b/Makefile @@ -0,0 +1,24 @@ +.PHONY: all +all: + $(MAKE) build + $(MAKE) docker + +.PHONY: build +build: + $(MAKE) clean + $(MAKE) prepare-dir + python3.9 scripts/main.py + +.PHONY: prepare-dir +prepare-dir: + mkdir output output/assets + cp assets/* output/assets + +.PHONY: clean +clean: + rm -rf output + +.PHONY: docker +docker: + docker build -t guide-changelog:local . + docker run --rm --name "guide-changelog" -p 8888:8080 guide-changelog:local diff --git a/README.md b/README.md new file mode 100644 index 0000000..0959d43 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# Guide Changelog + +[![User Guide](https://img.shields.io/badge/docs-User%20Guide-informational)](https://guide.ds-wizard.org) +[![License](https://img.shields.io/github/license/ds-wizard/guide-changelog)](LICENSE) + +*Changelog for Data Stewardship Wizard Guide + +### Requirements + + - **Python** (recommended 3.9) + - **Makefile** (recommended 3.81) + +## License + +This project is licensed under the Apache License v2.0 - see the [LICENSE](LICENSE) file for more details. \ No newline at end of file diff --git a/assets/favicon.ico b/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..97cb84e481ddfc7e2823d0378f060a51de30f668 GIT binary patch literal 22382 zcmeI44Ukn;9l$R^q9QC&_wBwn?4x&Qe*3@Y z+;jft|Nr0fb z!3Nk4PeUi%3#(xnEQCwoEKv7uec@g|roj1dGdu)4p^#$->3d)<5X~1a((0TEYvBoa z0b>3Ca=!r14Cv>$7i%Y}J>(q$|AJUgxeHdqc*s`iaqlx21*;&|f1dm0a3t*Zxkts2 zh|iI}i^srr)w38zLaAy!@+<>K!#c38z8DkpU-CUhC86A8Rmcr-Z({M2K#|Lfw z8Q8vYUjuJ~vURl~mO)+$zW*CxBJ^1|=Yugg4-T+yC0A@K%1Y{1TDDL~k~T_~; zXy+y{p0|Vc9S^B3S7>{VjkI2*C&EOgy*Pgy?$v@vh-EYD)7zX9ch&Cv-c|1&q z_rsTA75p3WZS*JY`@0y_*&iFUbso6hb-;u0B)EQ+YwszZe-EyQuff&u75E~24rV}q z+BXJYf^uz@dUhps99!1!(N4_E=l3WS5~1vDr2W5CJEiiBk$bjMDl5uU2eiQ7pj2D= zJl~6Z#a@0_)NoJ#?Sr?JY2PuY&x>F#G{Hcc>s3cR0sCy;*O=bQGso$C7!AGj3?@T; za1!)2A1$MdYsX-k>s42M;9Pnc+yVc9>>l1YI3`bkG+w=w3?d`yL^_9F1Am14_`jCC z;V_7nN>^29z6RJVTuf6Txp{zd`(etmok+&;05=c=+YF zkKeW@g5Til!E=v$!EgUNU^y%T&tlr(V=xD-^IDhyo=>IcG|0LNi}nUQUwAM40-l5H zw|M^EZ)DFUJTtowR>ESq0xp2Fz_Y!h!0%|!#SZ}clII;mE=JlE@XYC5a4QV-{{f!i z_$}}G;lp5mS`D6M-T;?_aXJV5-;U>7p0!Pav9K@fkugWRF%G`3Ghi@r$oHFk+Bj{8 zF8C)r1Z!ahdrE^d<1A@+M9BSPk@_zRx?YU()Y=Em_I@CH2d%8cAi_4?<|5ca*RiA6o zne7k8VIjC?cy4b0bUc?jOD<<~wV&DkdiVsq0#ci+IWE){^cv&+;9zimIu#s~3t&0? z0XBhi+zzO=ujTaF-by$H+~-w01ikdxM!>cHAeaI3;5xV;oXg7DT#IKTi`Bu7`A}pqFTPY|MLIC>U5v+EZD!c!jtegJO=i=zr#jwZCwKX zuO+p+*UPIgBkDn(3(tUd)#CkSbv{5F=fG)TzdjjG1pkkC3>*bV!c=e$Y=KGeDsYUB zfvWg#xPq?Zk;Xr3XD#j>&+|i@6~3+76c4tzzyA}|!so2cm9&x0=e6;sa;?FC_v+dI z;bv{F*1cog?~kolXj|Ze z$bs$w+|N7$E8r4n1=p1!``)ubz)oZEdT^{(`p%8n8aN-^!??!n16A9rW^Jv-J+|t< zXCK4;5bOWhGrFRrI{YA-lnPlnlWF)RV&;XCcm_wPo^ z9RYRado)(N!FhXMm*6oL|JUvn{XOfu_t7up9LVl*x=G&v6Jf9PJ;oyV zHwF1u@ZCQJ7r`iq#r9gMkKmr&K5!HGKis-I+Z)Ua!rwR+(r*{jjjIuXMg$rWXhfh9 zfkp%x5!e$E==H+^1I%b|E>>($_`L$IPJiEkt6Qg#yHe-4Y4?WTFX&YAdj@F%ei)%x zpfwagNt%I<4h!~_sb=z{L|v*d%G88Ter3UYer=&S$krg+vJwN*G}3Gh3KHwMb{3n- z$g~;KMY$_!+GM$1$=I|4cBghBi=hbZ^Ggq{mP>yIB9%q`>90PRZZGO9v=^%tI$F&o T0Bxx#bQDElO_1Az9F+JUtymaI literal 0 HcmV?d00001 diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 0000000..9107956 --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/style.css b/assets/style.css new file mode 100644 index 0000000..3ef9088 --- /dev/null +++ b/assets/style.css @@ -0,0 +1,53 @@ +body { + --color-brand-content: #f15a24; + font-family: Open-Sans, sans-serif; + margin: 0; +} + +header { + background-color: #f4f4f4; + height: 138px; + line-height: 68px; + padding: 0 20px; + position: absolute; + top: 0; + left: 0; + right: 0; + z-index: -1; +} + +header h1 { + display: flex; + align-items: center; + box-sizing: border-box; + max-width: 960px; + margin: auto; + font-size: 28px; + line-height: 68px; + color: #4D4948; + font-weight: normal; +} + +h1 img { + height: 30px; + margin-right: 10px; +} + +main { + padding: 10px 30px; + max-width: 940px; + margin: 0 auto; + box-shadow: 0 0 4px #ccc; + background: #fff; + margin-top: 80px; +} + +h2 { + margin-top: 30px; + font-size: 26px; + font-weight: normal; +} + +a { + color: var(--color-brand-content); +} \ No newline at end of file diff --git a/changelog.rst b/changelog.rst new file mode 100644 index 0000000..acd6bc6 --- /dev/null +++ b/changelog.rst @@ -0,0 +1,967 @@ +Wizard Guide Changelog +********************** + +.. + This is a workaround to random anchor links generation by Sphinx + https://github.com/sphinx-doc/sphinx/issues/1961#issuecomment-1322281847 + +.. _frontend-backend: +.. _frontend: +.. _backend: +.. _tools: + + +.. _v3.26.1-tools: + +3.26.1 (tools) +============== + +* *Release: 10 August 2023* + +* **Bugfixes:** + + * Fixed loading custom mail config in mailer. + + +.. _v3.26.1-frontend: + +3.26.1 (frontend) +================= + +* *Release: 10 August 2023* + +* **Bugfixes:** + + * Fixed the knowledge model filter on the project list. + + +.. _v3.26: + +3.26 +==== + +* *Release: 1 August 2023* + +* **Features:** + + * Added explicit info when there are no questions in a chapter. + * Comments tab is now highlighted when comments are open on a specific question. + +* **Bugfixes:** + + * Fixed cursor on radio input in the document template format selection. + * Fixed file upload UI in the document template editor. + * Fixed description in Markdown inputs. + * Fixed deleting queued documents (the dropdown menu was sometimes disappearing). + * Fixed link to document template development from the Data Steward dashboard. + * Fixed displaying of alphabetical identifiers for answers, choices, and items. + +* **Misc:** + + * Default role was changed to Researcher when running a fresh instance. + * Deleting users is now much faster. + * Upgraded Bootstrap to 5.3.0 in frontend. + +* **More:** + + * `API Changelog 3.25.0 ➔ 3.26.0 `__ + + +.. _v3.25.1-tools: + +3.25.1 (tools) +============== + +* *Release: 10 August 2023* + +* **Bugfixes:** + + * Fixed loading custom mail config in mailer. + + +.. _v3.25.3-frontend: + +3.25.3 (frontend) +================= + +* *Release: 10 August 2023* + +* **Bugfixes:** + + * Fixed the knowledge model filter on the project list. + + + +.. _v3.25.1-backend: + +3.25.1 (backend) +================= + +* *Release: 19 July 2023* + +* **Bugfixes:** + + * Fixed user activation when logging in for the first time using OpenID, and no Terms of Service or Privacy Policy were set. + + + +.. _v3.25.2-fronted: + +3.25.2 (frontend) +================= + +* *Release: 18 July 2023* + +* **Bugfixes:** + + * Fixed preview of item questions in KM Editor that could sometimes cause two items to have the same value when filling them in. + + + +.. _v3.25.1-fronted: + +3.25.1 (frontend) +================= + +* *Release: 6 July 2023* + +* **Bugfixes:** + + * Fixed change logo button in settings (affects only instances where this is enabled). + + +.. _v3.25: + +3.25 +==== + +* *Release: 4 July 2023* + +* **Features:** + + * Added revoke all to `active sessions `__. + * Added Terms of Service and/or Privacy agreement confirmation during SSO signup when they are set. + * `Preview in KM Editor `__ now opens on current question (corresponding answers are pre-selected if the question is nested). + * Improved `phase selection `__ in questionnaire and phase description is now used. + * Improved question tags selection when `creating a new project `__ to make it more clear which questions will be used. + * Added support for uploading more files in document template editor. + +* **Bugfixes:** + + * Fixed links from TODOs or comments to questions in collapsed items (they now expand). + * Fixed SMTP configuration without username and password for authentication. + +* **Misc:** + + * Added *robots.txt* to client and server to prevent indexing of the applications. + +* **More:** + + * `API Changelog 3.24.0 ➔ 3.25.0 `__ + + +.. _v3.24.1-fronted: + +3.24.1 (frontend) +================= + +* *Release: 6 July 2023* + +* **Bugfixes:** + + * Fixed change logo button in settings (affects only instances where this is enabled). + + +.. _v3.24.1-backend: + +3.24.1 (backend) +================ + +* *Release: 14 June 2023* + +* **Bugfixes:** + + * Fixed generating documents that contain more than one whitespace in the filename. + +* **More:** + + * `API Changelog 3.24.0 ➔ 3.24.1 `__ + + +.. _v3.24: + +3.24 +==== + +* *Release: 30 May 2023* + +* **Features:** + + * List views (such as project list or knowledge model list) have been reworked so that only the results are reloaded instead of the whole page. Therefore, the search field should not loose focus when typing slowly. + * Added warning before the user session expires. + * Improved information on detail pages (such as knowledge model or document template). + +* **Bugfixes:** + + * Fixed document generation when there were inconsistent replies after questionnaire migration. + * Fixed icon alignment in questionnaire import. + * Fixed color transition for menu icons. + +* **Misc:** + + * All document templates from DSW Registry now use WeasyPrint instead of wkhtmltopdf for PDF formats. + * It is recommended to migrate your existing PDF template to `WeasyPrint `__ as wkhtmltopdf will be removed in the future. + +* **More:** + + * `API Changelog 3.23.0 ➔ 3.24.0 `__ + + +.. _v3.23.3-backend: + +3.23.3 (backend) +================ + +* *Release: 14 June 2023* + +* **Bugfixes:** + + * Fixed generating documents that contain more than one whitespace in the filename. + +* **More:** + + * `API Changelog 3.23.2 ➔ 3.23.3 `__ + + +.. _v3.23.2-backend: + +3.23.2 (backend) +================ + +* *Release: 25 May 2023* + +* **Bugfixes:** + + * Fixed API key expiration to use the value set when creating it. + +* **More:** + + * `API Changelog 3.23.1 ➔ 3.23.2 `__ + + + +.. _v3.23.1-backend: + +3.23.1 (backend) +================ + +* *Release: 4 May 2023* + +* **Bugfixes:** + + * Fixed loading RSA private key if set only in the ENV variable. + +* **More:** + + * `API Changelog 3.23.0 ➔ 3.23.1 `__ + + + +.. _v3.23: + +3.23 +==== + +* *Release: 2 May 2023* + +* **Features:** + + * Added the possibility to generate `API keys `__ to access the API instead of using username and password. The API keys also work when 2FA is enabled. + * Added an overview of all `active sessions `__. + * It is now possible to use HTML for `login info `__. + * Added possibility for `sidebar login info `__ under the login box. + * Welcome warning and info have been reworked to `announcements `__ -- it is now possible to have an unlimited list of announcements of different levels and choose if they are visible on the dashboard and/or login screen. + * Added sort by created to document template list. + * Improved progress bar in project migration. + * The warnings tab in the knowledge model editor is now automatically closed when the last one is resolved. + * Improved form actions to make them more visible when forms change. + +* **Bugfixes:** + + * Fixed project indication calculation after import or project migration. + * Fixed double error message when deleting failed in list views. + * Fixed buttons in email templates in Outlook. + * Fixed phase in a questionnaire after project migration if the phase no longer exists. + * Fixed dropdown menus in the sidebar when the page was scrolled. + * Fixed knowledge model export from the knowledge model list. + +* **Misc:** + + * Changed the path of configuration files (`see upgrade guidelines `__). + * Sped up processing and generating of documents. + +* **More:** + + * `API Changelog 3.22.0 ➔ 3.23.0 `__ + + + +.. _v3.22.1-tools: + +3.22.1 (tools) +============== + +* *Release: 14 April 2023* + +* **Bugfixes:** + + * Fixed sending mails when configuration is loaded from database. + +* **More:** + + * `Jira issues 3.22.1-tools `__ + + + +.. _v3.22.3-backend: + +3.22.3 (backend) +================ + +* *Release: 13 April 2023* + +* **Bugfixes:** + + * Fixed the selected phase in projects when migrating from a knowledge model without phases to a knowledge model with phases. + +* **More:** + + * `Jira issues 3.22.3-backend `__ + * `API Changelog 3.22.2 ➔ 3.22.3 `__ + + + +.. _v3.22.2-backend: + +3.22.2 (backend) +================ + +* *Release: 12 April 2023* + +* **Bugfixes:** + + * Fixed an issue that sometimes caused suggesting the same knowledge model multiple times when creating a new project or knowledge model editor. + +* **More:** + + * `Jira issues 3.22.2-backend `__ + * `API Changelog 3.22.1 ➔ 3.22.2 `__ + + + +.. _v3.22.1: + +3.22.1 (frontend, backend) +========================== + +* *Release: 11 April 2023* + +* **Bugfixes:** + + * Fixed database migration of existing KM editors after 3.22 that could cause unexpected KM editor version or missing metadata (such as readme). + * Fixed publish process in KM editor and Document Template Editor that could be confusing after 3.22 changes. + * Fixed deleting KM editor when it is migrating. + +* **More:** + + * `Jira issues 3.22.1-frontend `__ + * `Jira issues 3.22.1-backend `__ + * `API Changelog 3.22.0 ➔ 3.22.1 `__ + + + +.. _v3.22: + +3.22.0 +====== + +* *Release: 4 April 2023* + +* **Features:** + + * Added the possibility to set a knowledge model as deprecated so researchers cannot use it to create new projects. + * Added `phase editor `__ to KM Editor (similar to Tag editor). + * Renamed `Template` tab to `Settings` in the document template editor to make it consistent with KM Editor or Project. + * Added link to selected project in document template editor preview. + * Position in the questionnaire is now remembered when switching tabs in the project (such as going to preview and back to the questionnaire). + * Warnings tab in the project is now automatically closed when the last one is resolved. + * Projects are no longer filtered by current user if the user is admin. + * Improved accessibility of unanswered question indications and metrics (as well as adding an option to hide non-desirable questions). + * Added information about a version of all components in the About modal. + * Improved add button labels in various forms to make it easier to understand what they add. + * Added support for DKIM signing for emails. + * Added experimental `weasyprint step `__ in document templates for better PDF documents generation. + * User details are now updated in the menu after editing your own profile. + * Added link to the DSW Registry from locale detail. + +* **Bugfixes:** + + * Fixed visible first chapter in KM Editor preview when deleted. + * Fixed inconsistent update label for badge and action for KM migration. + * Fixed failing to publish knowledge models due to wrong event squashing in some cases. + * Fixed redirect to login when opening the project after the session has expired. + * Fixed a visual bug in the project selection dropdown in the document template editor preview. + * Fixed text overflow for long questions/answers in the project import view. + * Fixed image previews in the document template editor. + * Fixed downloading document template with DSW TDK. + * Fixed dropdown menu separators in list views. + +* **Misc:** + + * Added support for RO-Crates (`RO-Crate Importer `__ and `RO-Crate Template `__) + * Improved default English locale metadata. + * Added support for arm64 builds for most of the Docker images. + +* **More:** + + * `Jira issues 3.22.0 `__ + * `API Changelog 3.21.0 ➔ 3.22.0 `__ + +3.21 +==== + +* Release: 7 March 2023 +* `Jira issues 3.21.0 `__ +* Key changes: + * Two-factor authentication (2FA) + * i18n support in document templates + * RO-Crate import/export + * Warnings on imports + * Various optimizations and UI fixes + + + +3.20 +==== + +* Release: 7 February 2023 +* `Jira issues 3.20.0 `__ +* Key changes: + * Document template editor (`idea `__) + * Mark document template as legacy + * Various UI improvements and fixes +* Hotfixes: + * 3.20.1 (frontend), 8 February 2023, `Jira `__ + * 3.20.1 (tools), 9 February 2023, `Jira `__ + * 3.20.2 (frontend), 10 February 2023, `Jira `__ + * 3.20.2 (tools), 10 February 2023, `Jira `__ + + +3.19 +==== + +* Release: 3 January 2023 +* `Jira issues 3.19.0 `__ +* Key changes: + * Indications computation + * Minor UI improvements and fixes +* Hotfixes: + * 3.19.1 (backend), 3 January 2023, `Jira `__ + * 3.19.1 (frontend), 6 January 2023, `Jira `__ + * 3.19.2 (backend), 12 January 2023, `Jira `__ + * 3.19.1 (tools), 15 January 2023, `Jira `__ + * 3.19.2 (tools), 17 January 2023, `Jira `__ + * 3.19.3 (backend), 17 January 2023, `Jira `__ + + +3.18 +==== + +* Release: 29 November 2022 +* `Jira issues 3.18.0 `__ +* Key changes: + * Localizations (`idea `__) + * Filter file extensions when importing KM or template + * Logout user when 401 received from API on dashboard +* Hotfixes: + * 3.18.1 (frontend), 1 December 2022, `Jira `__ + * 3.18.1 (backend), 1 December 2022, `Jira `__ + * 3.18.2 (frontend), 1 December 2022, `Jira `__ + * 3.18.2 (backend), 1 December 2022, `Jira `__ + * 3.18.3 (backend), 2 December 2022, `Jira `__ + * 3.18.3 (frontend), 15 December 2022, `Jira `__ + * 3.18.4 (backend), 16 December 2022, `Jira `__ + + +3.17 +==== + +* Release: 1 November 2022 +* `Jira issues 3.17.0 `__ +* Key changes: + * Consistency checks before publishing KM (`idea `__) + * Filter projects by KM (`idea `__) + * Support for ZIP/TAR archives and Excel exports + * Use of gettext for client localizations + * Support for OpenID logout functionality +* Hotfixes: + * 3.17.1 (frontend), 14 November 2022, `Jira `__ + + +3.16 +==== + +* Release: 4 October 2022 +* `Jira issues 3.16.0 `__ +* Key changes: + * Import for replies from other questionnaires (`idea `__) + * Collapsible and movable items in list questions + * Main menu grouping + * Speed optimizations and refactoring +* Hotfixes: + * 3.16.1 (backend), 27 October 2022, `Jira `__ + * 3.16.2 (backend), 12 October 2022, `Jira `__ + * 3.16.3 (backend), 6 October 2022, `Jira `__ + +3.15 +==== + +* Release: 5 September 2022 +* `Jira issues 3.15.0 `__ +* Key changes: + * Project loading optimization + * Python components refactoring + * Several other fixes and refactoring +* Hotfixes: + * 3.15.1 (tools), 7 September 2022, `Jira `__ + * 3.15.1 (frontend), 7 September 2022, `Jira `__ + * 3.15.2 (tools), 7 September 2022, `Jira `__ + * 3.15.2 (frontend), 14 September 2022, `Jira `__ + * 3.15.1 (backend), 14 September 2022, `Jira `__ + * 3.15.3 (tools), 17 September 2022, `Jira `__ + + +3.14 +==== + +* Release: 2 August 2022 +* `Jira issues 3.14.0 `__ +* Key changes: + * Migrate to Bootstrap 5 + * Improve authentication for downloads + * Python components refactoring +* Hotfixes: + * 3.14.1 (backend), 4 August 2022, `Jira `__ + * 3.14.1 (tools), 4 August 2022, `Jira `__ + + +3.13 +==== + +* Release: 28 June 2022 +* `Jira issues 3.13.0 `__ +* Key changes: + * Prevent user leave unsaved changes + * Improved exceptions monitoring + + +3.12 +==== + +* Release: 31 May 2022 +* `Jira issues 3.12.0 `__ +* Key changes: + * New types of value questions + * KM events optimizations + * Several bugfixes and UI/UX improvements +* Hotfixes: + * 3.12.1 (backend), 5 June 2022, `Jira `__ + * 3.12.1 (document-worker), 13 June 2022, `Jira `__ + + +3.11 +==== + +* Release: 3 May 2022 +* `Jira issues 3.11.0 `__ +* Key changes: + * Apply all action for KM migrations + * Improved efficiency of document worker + * Auto-upgrade default document templates in project + * Several bugfixes and UI improvements + +3.10 +==== + +* Release: 5 April 2022 +* `Jira issues 3.10.0 `__ +* Key changes: + * Mailer + * Integration widget + * Opening Markdown links in new tab/window + * Several bugfixes and UI improvements +* Hotfixes: + * 3.10.1 (frontend), 6 April 2022, `Jira `__ + * 3.10.2 (frontend), 17 April 2022, `Jira `__ + * 3.10.1 (backend), 17 April 2022, `Jira `__ + +3.9 +=== + +* Release: 1 March 2022 +* `Jira issues 3.9.0 `__ +* Key changes: + * Basic password requirements + * KM Editor: list of questions used with integration + * Improved project migration + * Usage statistics for administrators + * Several bugfixes and UI improvements +* Hotfixes: + * 3.9.1 (wizard-server), 8 March 2022, `Jira `__ + +3.8 +=== + +* Release: 1 February 2022 +* `Jira issues 3.8.0 `__ +* Key changes: + * Online collaboration in KM Editor +* Hotfixes: + * 3.8.1 (wizard-client), 1 February 2022, `Jira `__ + * 3.8.1 (registry-server), 2 February 2022, `Jira `__ + * 3.8.2 (wizard-server), 14 February 2022, `Jira `__ + +3.7 +=== + +* Release: 4 January 2022 +* `Jira issues 3.7.0 `__ +* Key changes: + * Projects tagging and filtering + +3.6 +=== + +* Release: 7 December 2021 +* `Jira issues 3.6.0 `__ +* Key changes: + * Enhancing integration question options (item template) +* Hotfixes: + * 3.6.1 (document-worker), 9 December 2021, `Jira `__ + +3.5 +=== + +* Release: 2 November 2021 +* `Jira issues 3.5.0 `__ +* Key changes: + * Additional metadata for KM entities + * Improved document submissions + * Admin operations + +3.4 +=== + +* Release: 5 October 2021 +* `Jira issues 3.4.0 `__ +* Key changes: + * Comments in projects + * New Jinja filters for document context handling + +3.3 +=== + +* Release: 8 September 2021 +* `Jira issues 3.3.0 `__ +* Key changes: + * Improved default document template + * Improved template development experience + * Enhanced Search API + * Several fixes + +3.2 +=== + +* Release: 3 August 2021 +* `Jira issues 3.2.0 `__ +* Key changes: + * Custom metrics (in KM) + * Custom phases (in KM) + * Several optimizations +* Hotfixes: + * 3.2.1 (registry-server), 6 August 2021, `Jira `__ + * 3.2.2 (wizard-server), 20 August 2021, `Jira `__ + +3.1 +=== + +* Release: 25 June 2021 +* `Jira issues 3.1.0 `__ +* Key changes: + * Project templates + * Minor UI improvements + +3.0 +=== + +* Release: 1 June 2021 +* `Jira issues 3.0.0 `__ +* Key changes: + * Migration from MongoDB and RabbitMQ to PostgreSQL and S3 + * Deep links feature + +2.14 +==== + +* Release: 4 May 2021 +* `Jira issues 2.14.0 `__ +* Key changes: + * Submitting forms using Enter key + * Shortcuts for KM Editor and Forking KM + * Clarified public link for project in UI + +2.13 +==== + +* End of development: 31 March 2021 +* Release: 7 April 2021 +* `Jira issues 2.13.0 `__ +* Key changes: + * Auto-reconnect in questionnaires (websockets) + * Fix text inputs in questionnaires when using Grammarly in browser + * Added actions directly to list views of knowledge models and templates + +2.12 +==== + +* End of development: 2 March 2021 +* Release: 12 March 2021 +* `Jira issues 2.12.0 `__ +* Key changes: + * Questionnaire versioning (Version History) + +2.11 +==== + +* End of development: February 2021 +* Release: February 2021 +* `Jira issues 2.11.0 `__ +* Key changes: + * Add multiple choice question + * Show tags in the questionnaire + +2.10 +==== + +* End of development: January 2021 +* Release: January 2021 +* `Jira issues 2.10.0 `__ +* Key changes: +* Possibility to add specific users to the questionnaire as collaborators + +2.9 +=== + +* End of development: 30 November 2020 +* Release: 9 December 2020 +* `Jira issues 2.9.0 `__ +* Key changes: + * Refactored error messages + * Several bugfixes + +2.8 +=== + +* End of development: 27 October 2020 +* Release: 3 November 2020 +* `Jira issues 2.8.0 `__ +* Key changes: + * Pagination & sorting in table views + * Introduced DSW Template Development Kit + * Minor UX improvements +* Hotfixes: + * 2.8.1 (wizard-server), 24 November 2020, `Jira issues 2.8.1 `__ + +2.7 +=== + +* End of development: 29 September 2020 +* Release: 5 October 2020 +* `Jira issues 2.7.0 `__ +* Key changes: + * Improved caching for speed optimization + * Reworked questionnaire detail + +2.6 +=== + +* End of development: 5 September 2020 +* Release: 9 September 2020 +* `Jira issues 2.6.0 `__ +* Key changes: + * Added questionnaire live collaboration + * Introduced Projects to relate questionnaire, TODOs, documents, and settings + * Several UI/UX improvements + * Improved design of email templates + +2.5 +=== + +* End of development: 24 June 2020 +* Release: 8 July 2020 +* `Jira issues 2.5.0 `__ +* Key changes: + * Added templates management + * Several UI/UX improvements + * Introduced backend workers for scheduled/async tasks + * Added option to disable questionnaire summary report + +2.4 +=== + +* End of development: 27 May 2020 +* Release: 3 June 2020 +* `Jira issues 2.4.0 `__ +* Key changes: + * Added RDF support step in document worker + * Improved default naming of new documents + * Minor UI/UX improvements + * Several bugfixes + +2.3 +=== + +* End of development: 29 April 2020 +* Release: 6 May 2020 +* `Jira issues 2.3.0 `__ +* Key changes: + * Enhanced backend logging for ELK + * Added document submission + * Improved integration with Registry for simpler Sign Up + * Added user avatars + * Several bugfixes and optimizations + +2.2 +=== + +* End of development: 25 March 2020 +* Release: 1 April 2020 +* `Jira issues 2.2.0 `__ +* Key changes: + * Added support for OpenID + * Added affiliations in user profiles + * Introduced settings to change configurations directly in DSW interface + * Added API documentation using Swagger + * UI/UX improvements + * Several bugfixes and optimizations + +2.1 +=== + +* End of development: 25 February 2020 +* Release: 3 March 2020 +* `Jira issues 2.1.0 `__ +* Key changes: + * Introduced document worker for better scalability + * Migrated backend to new framework + * Added dropdown actions to list views + * Several bugfixes + +2.0 +=== + +* End of development: 14 January 2020 +* Release: 14 January 2020 +* `Jira issues 2.0.0 `__ +* Key changes: + * Added move functionality for knowledge models + * Added possibility to assign template to KMs + * Added questionnaire cloning + * Added expand/collapse all in KM Editor + * Internal refactoring and structure enhancements + * Several bugfixes + +1.10 +==== + +* End of development: 27 August 2019 +* Release: 3 September 2019 +* `Jira issues 1.10.0 `__ +* Hotfixes: + * 1.10.1 (wizard-client), 18 September 2019, `Jira issues 1.10.1 `__ + +1.9 +=== + +* End of development: 23 June 2019 +* Release: 30 June 2019 +* `Jira issues 1.9.0 `__ +* Hotfixes: + * 1.9.1 (wizard-server), 7 August 2019, `Jira issues 1.9.1 `__ + * 1.9.2 (wizard-server), 13 August 2019, `Jira issues 1.9.2 `__ + +1.8 +=== + +* End of development: 11 June 2019 +* Release: 13 June 2019 +* `Jira issues 1.8.0 `__ +* Hotfixes: + * 1.8.1 (wizard-client), 13 June 2019, `Jira issues 1.8.1 `__ + +1.7 +=== + +* End of development: 15 May 2019 +* Release: 16 May 2019 +* `Jira issues 1.7.0 `__ + +1.6 +=== + +* End of development: 30 April 2019 +* Release: 7 May 2019 +* `Jira issues 1.6.0 `__ + +1.5 +=== + +* End of development: 2 April 2019 +* Release: 9 April 2019 +* `Jira issues 1.5.0 `__ + +1.4 +=== + +* End of development: 3 March 2019 +* Release: 10 March 2019 +* `Jira issues 1.4.0 `__ + +1.3 +=== + +* End of development: 3 February 2019 +* Release: 10 February 2019 +* `Jira issues 1.3.0 `__ + +1.2 +=== + +* End of development: 6 January 2019 +* Release: 13 January 2019 +* `Jira issues 1.2.0 `__ +* Hotfixes: + * 1.2.1 (wizard-server), 14 January 2019, `Jira issue 1.2.1 `__ + +1.1 +=== + +* End of development: 9 December 2018 +* Release: 16 December 2018 +* `Jira issues 1.1.0 `__ + +1.0 +=== + +* End of development: 24 October 2018 +* Release: 30 October 2018 diff --git a/docker/default.conf b/docker/default.conf new file mode 100644 index 0000000..a742230 --- /dev/null +++ b/docker/default.conf @@ -0,0 +1,17 @@ +server { + listen 8080; + server_name localhost; + + location / { + root /usr/share/nginx/html; + add_header Last-Modified ""; + index index.html index.htm; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + + error_page 404 =200 /index.html; +} diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..57eb73e --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +docutils==0.20.1 \ No newline at end of file diff --git a/scripts/main.py b/scripts/main.py new file mode 100644 index 0000000..2ed1451 --- /dev/null +++ b/scripts/main.py @@ -0,0 +1,52 @@ +import pathlib + +import docutils.core + +ENCODING = 'utf-8' +ROOT_DIR = pathlib.Path(__file__).parent.parent +CHANGELOG_RST_FILENAME = 'changelog.rst' +CHANGELOG_RST_FILEPATH = ROOT_DIR / CHANGELOG_RST_FILENAME +OUTPUT_DIR = ROOT_DIR / 'output' +CHANGELOG_HTML_ORIGINAL_FILENAME = 'changelog-original.html' +CHANGELOG_HTML_ORIGINAL_FILEPATH = OUTPUT_DIR / CHANGELOG_HTML_ORIGINAL_FILENAME +CHANGELOG_HTML_FILENAME = 'changelog.html' +CHANGELOG_HTML_FILEPATH = OUTPUT_DIR / CHANGELOG_HTML_FILENAME + +if __name__ == '__main__': + docutils.core.publish_file( + source_path=CHANGELOG_RST_FILEPATH.__str__(), + destination_path=CHANGELOG_HTML_ORIGINAL_FILEPATH.__str__(), + settings_overrides={ + 'embed_stylesheet': False, + 'stylesheet_path': 'assets/style.css' + }, + writer_name="html5") + + with CHANGELOG_HTML_ORIGINAL_FILEPATH.open(encoding=ENCODING, mode='rt') as f_in: + with CHANGELOG_HTML_FILEPATH.open(encoding=ENCODING, mode='wt') as f_out: + for line in f_in: + f_out.write( + line + .replace( + 'Wizard Guide Changelog', + """Wizard Guide Changelog + + """ + ) + .replace( + '

Wizard Guide Changelog

', + '' + ) + .replace( + '
', + """
+

+ +
| Guide Changelog
+

+
+
+ """ + ) + ) + CHANGELOG_HTML_ORIGINAL_FILEPATH.unlink()