diff --git a/.github/ISSUE_TEMPLATE/bug-report-issue.md b/.github/ISSUE_TEMPLATE/bug-report-issue.md new file mode 100644 index 0000000..1be5ec0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report-issue.md @@ -0,0 +1,50 @@ +--- +name: Bug Report Issue +about: A standard Bug Report template and the types of information that should be captured in a Bug Report issue. +title: '' +labels: 'bug' +assignees: '' + +--- + +# Prerequisites + +Please answer the following questions for yourself before submitting a Bug Report issue: +* Is the title clear and understandable at a glance? +* Should any other labels be added to this issue? + +Labels are not required for all tickets, but they are helpful for prioritization. Please check the labels drop-down to see if any of the pre-set labels work for your ticket. + +**YOU SHOULD DELETE THE PREREQUISITES SECTION.** + +# Environment + +Indicate the environment that the bug was realized. This can also be more than the environment and may include the following: OS, browser, local/dev/staging/prod etc. + +# Date/time occurred + +Indicate the date/time the bug was realized. + +# Description + +What is the problem? Describe what is currently happening in detail. + +# Steps to Reproduce + +What are the steps performed to reproduce this bug? + +# Expected Results + +What are the expected results? What is the expected behavior? + +# Actual Results + +What are the actual results and provide any evidence of the actual results below. + +# Evidence + +Please provide screenshots/screen capture or other evidence such as log files (scrubbed of sensitive information). + +# Estimated Severity + +If possible, provide an initial severity estimate of the issue. This of course can be adjusted after submission. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/enhancement-request-issue.md b/.github/ISSUE_TEMPLATE/enhancement-request-issue.md new file mode 100644 index 0000000..4be3137 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/enhancement-request-issue.md @@ -0,0 +1,42 @@ +--- +name: Enhancement Request Issue +about: A standard Enhancement Request template and the types of information that should be captured in a Enhancement Request issue. +title: '' +labels: 'Improvement' +assignees: '' + +--- + +# Prerequisites + +Please answer the following questions for yourself before submitting an Enhancement Request issue: +* Is the title clear and understandable at a glance? +* Should any other labels be added to this issue? + +Labels are not required for all tickets, but they are helpful for prioritization. Please check the labels drop-down to see if any of the pre-set labels work for your ticket. + +**YOU SHOULD DELETE THE PREREQUISITES SECTION.** + +# Description + +A description of the enhancement. What are the new features/improvements to this enhancement change? + +# Value + +Why is this enhancement important/valuable? + +# Users/Target Audience + +Who would benefit from this enhancement? + +# Requirements + +If known, what are the dependencies and infrastructure required for this enhancement? + +# Examples + +Are there any current examples of this feature somewhere else? Please provide screenshots or URLs of this enhancement. + +# Risks + +Are there any risks that may be associated with this enhancement? For example, cost, time, performance impact or increased complexity? \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/release-checklist-issue.md b/.github/ISSUE_TEMPLATE/release-checklist-issue.md new file mode 100644 index 0000000..87b9092 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/release-checklist-issue.md @@ -0,0 +1,47 @@ +--- +name: Release Checklist Issue +about: PASS Release Checklist includes all the necessary steps required to successfully release the next version of PASS. +title: 'Release MAJOR.MINOR.PATCH' +labels: 'Release' +assignees: '' + +--- + +# Release Manager Actions Checklist + +| | | +|------------------|----------------------------| +| Release version | MAJOR.MINOR.PATCH | +| Next dev version | MAJOR.MINOR.PATCH-SNAPSHOT | + +## Release Process Overview +This is the full detailed release process, including the steps that are performed by the GitHub automation: [Release](https://github.com/eclipse-pass/main/blob/main/docs/dev/release.md) + +## Pre-release + +- [] Identify the version to be utilized for the release. +- [] Ensure all code commits and PRs intended for the release have been merged. +- [] Issue a code freeze statement on the Eclipse PASS slack #pass-dev channel to notify all developers that a release is imminent. + +[Release Steps with Automations](https://github.com/eclipse-pass/main/blob/main/docs/dev/release-steps-with-automations.md) + +## Release Projects + +[Release All Modules Workflow](https://github.com/eclipse-pass/main/actions/workflows/pass-complete-release.yml) + +- [] Release Main +- [] Release Pass-Core +- [] Release Pass Support +- [] Release Pass UI +- [] Release Pass Acceptance Testing +- [] Release Pass Docker + +## Post-release + +- [] Test the release by using the [acceptance test workflow](https://github.com/eclipse-pass/pass-acceptance-testing/actions/workflows/test.yml). Enter the release number into the Ref field. +- [] Check that correct tickets are in the release milestone. [GitHub Ticket Update](https://github.com/eclipse-pass/main/blob/main/docs/dev/release.md#update-release-notes) +- [] Write release notes in the [Release Notes doc](https://github.com/eclipse-pass/main/blob/main/docs/release-notes.md), submit a PR for the changes, and ensure the PR is merged. Release Notes should be written to be understandable by community members who are not technical. +- [] Draft release message and have technical & community lead provide feedback. Ensure that a link to the release notes is included in the release message. +- [] Post a message about the release to the PASS Google Group. [Notes about the PASS Google Group](https://github.com/eclipse-pass/main/blob/main/docs/dev/release.md#process) +- [] Update [Pass Demo](https://demo.eclipse-pass.org) to new release - [Publish to SNS Topic action](https://github.com/eclipse-pass/main/actions/workflows/deployToAWS.yml) using `Environment: demo` +- [] Send message to Eclipse PASS slack #pass-dev channel that the release is complete. \ No newline at end of file diff --git a/.github/actions/yarn-build/action.yml b/.github/actions/node-build/action.yml similarity index 67% rename from .github/actions/yarn-build/action.yml rename to .github/actions/node-build/action.yml index 51b0440..72dc342 100644 --- a/.github/actions/yarn-build/action.yml +++ b/.github/actions/node-build/action.yml @@ -1,6 +1,6 @@ -name: Build yarn module for release +name: Build package module for release description: | - Build yarn module + Build package module inputs: repository_dir: @@ -17,7 +17,11 @@ inputs: runs: using: composite steps: - - name: Builds yarn module + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + - name: Builds module shell: bash working-directory: ${{ inputs.repository_dir }} env: @@ -25,10 +29,6 @@ runs: IS_DEV: ${{ inputs.is_dev }} run: | export $(grep -v '^[#|SIGNING|PASS_CORE_POLICY]' $ENV_FILE_PATH | xargs -d '\n') - yarn install --frozen-lockfile - if [ "$IS_DEV" == "true" ]; then - yarn run build:dev - else - yarn run build - fi - yarn run build:docker + pnpm install --frozen-lockfile + pnpm run build + pnpm run build:docker diff --git a/.github/actions/node-version/action.yml b/.github/actions/node-version/action.yml new file mode 100644 index 0000000..fad89dd --- /dev/null +++ b/.github/actions/node-version/action.yml @@ -0,0 +1,33 @@ +name: Update package version for release +description: | + Updates package version which automatically does a commit and this action tags + +inputs: + repository_dir: + description: 'Directory of repository to update' + required: true + skip_tag: + description: 'Skip git tag' + required: false + default: "false" + +runs: + using: composite + steps: + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + - name: Update version and tag + shell: bash + working-directory: ${{ inputs.repository_dir }} + env: + SKIP_TAG: ${{ inputs.skip_tag }} + run: | + pnpm install --frozen-lockfile + pnpm version --git-tag-version false --new-version $RELEASE + git commit --allow-empty -am "Update version to $RELEASE" + if [ "$SKIP_TAG" == "false" ]; then + echo "Tagging version $RELEASE" + git tag $RELEASE + fi diff --git a/.github/actions/yarn-version/action.yml b/.github/actions/yarn-version/action.yml index 12a9c28..195845a 100644 --- a/.github/actions/yarn-version/action.yml +++ b/.github/actions/yarn-version/action.yml @@ -27,4 +27,4 @@ runs: if [ "$SKIP_TAG" == "false" ]; then echo "Tagging yarn version $RELEASE" git tag $RELEASE - fi + fi \ No newline at end of file diff --git a/.github/workflows/pass-complete-release.yml b/.github/workflows/pass-complete-release.yml index 762e6df..87ad357 100644 --- a/.github/workflows/pass-complete-release.yml +++ b/.github/workflows/pass-complete-release.yml @@ -60,10 +60,10 @@ jobs: git clone https://${{ secrets.JAVA_RELEASE_PAT }}@github.com/eclipse-pass/pass-acceptance-testing.git combined/pass-acceptance-testing git clone https://${{ secrets.JAVA_RELEASE_PAT }}@github.com/eclipse-pass/pass-docker.git combined/pass-docker - - name: Setup Node & Yarn - uses: actions/setup-node@v3 + - name: Setup Node & pnpm + uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Login to GHCR uses: docker/login-action@v2 @@ -115,6 +115,7 @@ jobs: docker push ghcr.io/eclipse-pass/jhu-grant-loader:$RELEASE docker push ghcr.io/eclipse-pass/pass-journal-loader:$RELEASE docker push ghcr.io/eclipse-pass/pass-nihms-loader:$RELEASE + docker push ghcr.io/eclipse-pass/pass-nihms-token-refresh:$RELEASE - name: Set Snapshot/commit ~ Java Repositories if: ${{ ! env.ALL_JAVA_REPOS_TAG_EXISTS }} @@ -143,6 +144,7 @@ jobs: docker push ghcr.io/eclipse-pass/jhu-grant-loader:$NEXT docker push ghcr.io/eclipse-pass/pass-journal-loader:$NEXT docker push ghcr.io/eclipse-pass/pass-nihms-loader:$NEXT + docker push ghcr.io/eclipse-pass/pass-nihms-token-refresh:$NEXT - name: Push the commits and tags ~ Java Repositories if: ${{ ! env.ALL_JAVA_REPOS_TAG_EXISTS }} @@ -166,7 +168,7 @@ jobs: - name: Set Release/commit/tag ~ pass-ui if: ${{ ! env.PASS_UI_TAG_EXISTS }} - uses: ./main/.github/actions/yarn-version + uses: ./main/.github/actions/node-version with: repository_dir: combined/pass-ui env: @@ -174,7 +176,7 @@ jobs: - name: Build Release pass-ui if: ${{ ! env.PASS_UI_TAG_EXISTS }} - uses: ./main/.github/actions/yarn-build + uses: ./main/.github/actions/node-build with: repository_dir: combined/pass-ui env_path: ../pass-docker/.env @@ -185,7 +187,7 @@ jobs: - name: Set Snapshot/commit ~ pass-ui if: ${{ ! env.PASS_UI_TAG_EXISTS }} - uses: ./main/.github/actions/yarn-version + uses: ./main/.github/actions/node-version with: repository_dir: combined/pass-ui skip_tag: "true" @@ -194,7 +196,7 @@ jobs: - name: Build Snapshot pass-ui if: ${{ ! env.PASS_UI_TAG_EXISTS }} - uses: ./main/.github/actions/yarn-build + uses: ./main/.github/actions/node-build with: repository_dir: combined/pass-ui env_path: ../pass-docker/.env @@ -251,17 +253,6 @@ jobs: git commit --allow-empty -am "Update version to $RELEASE" git tag --force $RELEASE - - name: Build Release pass-docker images - if: ${{ ! env.PASS_DOCKER_TAG_EXISTS }} - working-directory: combined/pass-docker - run: docker compose -f docker-compose.yml -f eclipse-pass.local.yml build idp ldap - - - name: Push Release Docker images to GHCR ~ pass-docker - if: ${{ ! env.PASS_DOCKER_TAG_EXISTS }} - run: | - docker push ghcr.io/eclipse-pass/demo-ldap:$RELEASE - docker push ghcr.io/eclipse-pass/idp:$RELEASE - - name: Set Snapshot/commit ~ pass-docker if: ${{ ! env.PASS_DOCKER_TAG_EXISTS }} run: | @@ -269,17 +260,6 @@ jobs: sed -i "/^PASS_VERSION/s/.*/PASS_VERSION=$NEXT/" .env git commit --allow-empty -am "Update version to $NEXT" - - name: Build Snapshot pass-docker images - if: ${{ ! env.PASS_DOCKER_TAG_EXISTS }} - working-directory: combined/pass-docker - run: docker compose -f docker-compose.yml -f eclipse-pass.local.yml build idp ldap - - - name: Push Snapshot Docker images to GHCR ~ pass-docker - if: ${{ ! env.PASS_DOCKER_TAG_EXISTS }} - run: | - docker push ghcr.io/eclipse-pass/demo-ldap:$NEXT - docker push ghcr.io/eclipse-pass/idp:$NEXT - - name: Push the commits and tags ~ pass-docker if: ${{ ! env.PASS_DOCKER_TAG_EXISTS }} run: cd combined/pass-docker && git push --atomic origin main --force $RELEASE diff --git a/docs/release-notes.md b/docs/release-notes.md index fbec618..65b1a55 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,3 +1,54 @@ +## Release v1.10.0 +### Date: August 28, 2024 + +Release Manager: Russ Poetker, JHU + +This release focused on a new Deposit Services repository integration, NIHMS Data Loader automation, and Release process and Documentation improvements. Deposit services has been enhanced to be able to deposit into InvenioRDM. This can also be tested locally with pass-docker being able to start a local instance of InvenioRDM. There is a new automation available in NIHMS Data Loader for refreshing the NIHMS API Token. We made a change to the pass-core/pass-support releases to align the maven repackage plugin configuration with its latest recommendations. As part of this change, the repackaged jar file is no longer deployed to Maven Central during release. The team continued work on overhauling and improving the existing documentation. + +Tickets Completed: https://github.com/eclipse-pass/main/milestone/24?closed=1 + +Release Components: +* main - https://github.com/eclipse-pass/main/releases/tag/1.10.0 +* pass-core - https://github.com/eclipse-pass/pass-core/releases/tag/1.10.0 +* pass-docker - https://github.com/eclipse-pass/pass-docker/releases/tag/1.10.0 +* pass-acceptance-testing - https://github.com/eclipse-pass/pass-acceptance-testing/releases/tag/1.10.0 +* pass-support - https://github.com/eclipse-pass/pass-support/releases/tag/1.10.0 +* pass-ui - https://github.com/eclipse-pass/pass-ui/releases/tag/1.10.0 + +## Release v1.9.1 +### Date: August 1, 2024 + +Release Manager: Russ Poetker, JHU + +This release fixes a bug with the layout of some of the pages in the UI. + +Tickets Completed: https://github.com/eclipse-pass/main/milestone/25?closed=1 + +Release Components: +* main - https://github.com/eclipse-pass/main/releases/tag/1.9.1 +* pass-core - https://github.com/eclipse-pass/pass-core/releases/tag/1.9.1 +* pass-docker - https://github.com/eclipse-pass/pass-docker/releases/tag/1.9.1 +* pass-acceptance-testing - https://github.com/eclipse-pass/pass-acceptance-testing/releases/tag/1.9.1 +* pass-support - https://github.com/eclipse-pass/pass-support/releases/tag/1.9.1 +* pass-ui - https://github.com/eclipse-pass/pass-ui/releases/tag/1.9.1 + +## Release v1.9.0 +### Date: July 31, 2024 + +Release Manager: Russ Poetker, JHU + +This release focused on improving deployment tests, addressing technical debt, and improving documentation. Deployment tests were updated to make deposits into downstream repositories optional. If a deployment test deposit is made into a downstream DSpace repository, it will be automatically deleted after the test completes. More deprecations in pass-ui were fixed which allowed pass-ui to be upgraded to Ember v5.8. The pass-ui module now uses Embroider and pnpm for building. The team continued work on overhauling the existing documentation. + +Tickets Completed: https://github.com/eclipse-pass/main/milestone/23?closed=1 + +Release Components: +* main - https://github.com/eclipse-pass/main/releases/tag/1.9.0 +* pass-core - https://github.com/eclipse-pass/pass-core/releases/tag/1.9.0 +* pass-docker - https://github.com/eclipse-pass/pass-docker/releases/tag/1.9.0 +* pass-acceptance-testing - https://github.com/eclipse-pass/pass-acceptance-testing/releases/tag/1.9.0 +* pass-support - https://github.com/eclipse-pass/pass-support/releases/tag/1.9.0 +* pass-ui - https://github.com/eclipse-pass/pass-ui/releases/tag/1.9.0 + ## Release v1.8.0 ### Date: July 1, 2024 diff --git a/docs/release/release-actions-1.10.0.md b/docs/release/release-actions-1.10.0.md new file mode 100644 index 0000000..2a500dc --- /dev/null +++ b/docs/release/release-actions-1.10.0.md @@ -0,0 +1,3 @@ +# Release Manager Actions Checklist Template + +- Release tracked in GitHub issue: https://github.com/eclipse-pass/main/issues/1039 diff --git a/docs/release/release-actions-1.9.0.md b/docs/release/release-actions-1.9.0.md new file mode 100644 index 0000000..870f89c --- /dev/null +++ b/docs/release/release-actions-1.9.0.md @@ -0,0 +1,39 @@ +# Release Manager Actions Checklist Template + +| | | +| --- |-----------------| +| Release version | 1.9.0 | +| Next dev version | 1.10.0-SNAPSHOT | + +## Release Process Overview +This is the full detailed release process, including the steps that are performed by the GitHub automation: [Release](../dev/release.md) + +## Pre-release + +- [x] Identify the version to be utilized for the release. +- [x] Ensure all code commits and PRs intended for the release have been merged. +- [x] Issue a code freeze statement on the Eclipse PASS slack #pass-dev channel to notify all developers that a release is imminent. + +[Release Steps with Automations](../dev/release-steps-with-automations.md) + +## Release Projects + +[Release All Modules Workflow](https://github.com/eclipse-pass/main/actions/workflows/pass-complete-release.yml) + +- [x] Release Main +- [x] Release Pass-Core +- [x] Release Pass Support +- [x] Release Pass UI +- [x] Release Pass Acceptance Testing +- [x] Release Pass Docker + +## Post-release + +- [x] Test the release by using the [acceptance test workflow](https://github.com/eclipse-pass/pass-acceptance-testing/actions/workflows/test.yml). Enter the release number into the Ref field. +- [x] Check that correct tickets are in the release milestone. [GitHub Ticket Update](../dev/release.md#update-release-notes) +- [x] Write release notes in the [Release Notes doc](../release-notes.md), submit a PR for the changes, and ensure the PR is merged. Release Notes should be written to be understandable by community members who are not technical. +- [x] Draft release message and have technical & community lead provide feedback. Ensure that a link to the release notes is included in the release message. +- [x] Post a message about the release to the PASS Google Group. [Notes about the PASS Google Group](../dev/release.md#process) +- [x] Update template if any steps were missed or if any new tasks were added. Also make note of these new steps in the release-actions-X.X.X.md file. +- [x] Update [Pass Demo](https://demo.eclipse-pass.org) to new release - [Publish to SNS Topic action](https://github.com/eclipse-pass/main/actions/workflows/deployToAWS.yml) using `Environment: demo` +- [x] Send message to Eclipse PASS slack #pass-dev channel that the release is complete. diff --git a/docs/release/release-actions-1.9.1.md b/docs/release/release-actions-1.9.1.md new file mode 100644 index 0000000..695444c --- /dev/null +++ b/docs/release/release-actions-1.9.1.md @@ -0,0 +1,39 @@ +# Release Manager Actions Checklist Template + +| | | +| --- |-----------------| +| Release version | 1.9.1 | +| Next dev version | 1.10.0-SNAPSHOT | + +## Release Process Overview +This is the full detailed release process, including the steps that are performed by the GitHub automation: [Release](../dev/release.md) + +## Pre-release + +- [x] Identify the version to be utilized for the release. +- [x] Ensure all code commits and PRs intended for the release have been merged. +- [x] Issue a code freeze statement on the Eclipse PASS slack #pass-dev channel to notify all developers that a release is imminent. + +[Release Steps with Automations](../dev/release-steps-with-automations.md) + +## Release Projects + +[Release All Modules Workflow](https://github.com/eclipse-pass/main/actions/workflows/pass-complete-release.yml) + +- [x] Release Main +- [x] Release Pass-Core +- [x] Release Pass Support +- [x] Release Pass UI +- [x] Release Pass Acceptance Testing +- [x] Release Pass Docker + +## Post-release + +- [x] Test the release by using the [acceptance test workflow](https://github.com/eclipse-pass/pass-acceptance-testing/actions/workflows/test.yml). Enter the release number into the Ref field. +- [x] Check that correct tickets are in the release milestone. [GitHub Ticket Update](../dev/release.md#update-release-notes) +- [x] Write release notes in the [Release Notes doc](../release-notes.md), submit a PR for the changes, and ensure the PR is merged. Release Notes should be written to be understandable by community members who are not technical. +- [x] Draft release message and have technical & community lead provide feedback. Ensure that a link to the release notes is included in the release message. +- [x] Post a message about the release to the PASS Google Group. [Notes about the PASS Google Group](../dev/release.md#process) +- [x] Update template if any steps were missed or if any new tasks were added. Also make note of these new steps in the release-actions-X.X.X.md file. +- [x] Update [Pass Demo](https://demo.eclipse-pass.org) to new release - [Publish to SNS Topic action](https://github.com/eclipse-pass/main/actions/workflows/deployToAWS.yml) using `Environment: demo` +- [x] Send message to Eclipse PASS slack #pass-dev channel that the release is complete. diff --git a/pom.xml b/pom.xml index 7aa8e13..fd964ad 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.eclipse.pass eclipse-pass-parent - 1.9.0-SNAPSHOT + 1.11.0-SNAPSHOT pom Eclipse-PASS Parent