diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index b7ad51525..586f27116 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -3,6 +3,6 @@ contact_links: - name: conda-store documentation url: https://conda.store/en/latest/ about: Check out the conda-store documentation - - name: conda-store issue tracker - about: Did you find a bug or want to suggest something? Please open an issue on our tracker. - url: https://https://github.com/conda-incubator/conda-store/issues/new/choose + - name: Contribution guidelines + about: Do you want to contribute to conda-store? Visit our community guidelines + url: https://conda.store/community/contribute/ diff --git a/.github/ISSUE_TEMPLATE/new-release.md b/.github/ISSUE_TEMPLATE/new-release.md index 171750ea2..5969f265c 100644 --- a/.github/ISSUE_TEMPLATE/new-release.md +++ b/.github/ISSUE_TEMPLATE/new-release.md @@ -22,7 +22,7 @@ Release captain responsible - <@gh_username> ### 2. Prepare the codebase for a new release -- [ ] Create a new git branch for the release `git checkout -b release-2023.9.1` +- [ ] Create a new git branch for the release `git checkout -b release-2024.9.1` - [ ] Prepare the branch just in case `git clean -fxdq` - [ ] Bump `conda-store` version in [`conda-store/conda-store/__init__.py`](https://github.com/conda-incubator/conda-store/blob/main/conda-store/conda_store/__init__.py) - [ ] Bump `conda-store-server` version in [`conda-store-server/conda-store-server/__init__.py`](https://github.com/conda-incubator/conda-store/blob/main/conda-store/conda_store/__init__.py) @@ -40,15 +40,24 @@ Release captain responsible - <@gh_username> hatch clean ``` -- [ ] Make a release commit: ``git commit -m 'REL - 2023.9.1'`` + - [ ] After building `conda-store-server` and before `hatch clean` run the server in standalone mode: + + ```bash + cd conda-store-server + conda-store-server --standalone + ``` + + To do a manual inspection of the build and `ui` vendoring process. + +- [ ] Make a release commit: ``git commit -m 'REL - 2024.9.1'`` - [ ] Push the release (REL) commit ``git push upstream main`` - [ ] If a **release candidate** is needed, tick this box when we're ready for a full release. ### 3. Make the release - [ ] [Start a new GitHub release](https://github.com/conda-incubator/conda-store/releases/new) - - Call the release the current version, e.g. `2023.9.1` - - In the **`Choose a Tag:`** dropdown, type in the release name (e.g., `2023.9.1`) and click "Create new tag" + - Call the release the current version, e.g. `2024.9.1` + - In the **`Choose a Tag:`** dropdown, type in the release name (e.g., `2024.9.1`) and click "Create new tag" - In the **`Target:`** dropdown, pin it to the release commit you've recently pushed. - Add release notes in the field below[^github-activity]; you can copy/paste the Changelog from the [CHANGELOG.md](./CHANGELOG.md) file. - [ ] Confirm that the release completed @@ -58,6 +67,7 @@ Release captain responsible - <@gh_username> - [The Docker images have been published](https://github.com/conda-incubator/conda-store/blob/main/.github/workflows/build_docker_image.yaml) - [ ] Update the [conda-forge feedstock version](https://github.com/conda-forge/conda-store-feedstock) through a PR or review and merge the regro-bot PR. - [ ] If needed - update `meta.yaml` or `recipe.yaml` and re-render the feedstock. +- [ ] Open a follow-up PR to bump `conda-store` and `conda-store-server` versions to the next dev-release number (for example `2024.10.1`). - [ ] Celebrate, you're done! 🎉 -[^github-activity]: If you wish, use [`github-activity` to generate a Changelog](https://github.com/choldgraf/github-activity), e.g. `github-activity conda-incubator/conda-store --since 2023.9.1 --until 2023.10.1`. +[^github-activity]: If you wish, use [`github-activity` to generate a Changelog](https://github.com/choldgraf/github-activity), e.g. `github-activity conda-incubator/conda-store --since 2024.9.1 --until 2023.10.1`. diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 792c80492..955ca8f28 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -38,20 +38,14 @@ jobs: - run: echo "Running on ${{ matrix.directory }}" - - name: "Check package build - ${{ matrix.directory }} 📦" + - name: "Build and check package - ${{ matrix.directory }} 📦" uses: hynek/build-and-inspect-python-package@v2 + id: baipp with: path: ${{ matrix.directory }} upload-name-suffix: "-${{ matrix.directory }}" - # Adding a separate upload for publishing - - name: "Upload build artefacts 📤" - uses: actions/upload-artifact@v3 - with: - name: ${{ matrix.directory }}-package - path: | - /tmp/baipp/dist/*.whl - /tmp/baipp/dist/*.tar.gz + - run: echo Packages can be found at ${{ steps.baipp.outputs.dist }} and in artifact ${{ steps.baipp.outputs.artifact-name }} # Upload to Test PyPI on every commit on main release-test-pypi: @@ -72,9 +66,11 @@ jobs: - name: "Download build artefacts 📥" uses: actions/download-artifact@v4.1.7 with: - name: ${{ matrix.directory }}-package + name: Packages-${{ matrix.directory }} path: dist + - run: tar xf dist/*.tar.gz --strip-components=1 + - name: "Upload package to Test PyPI" uses: pypa/gh-action-pypi-publish@release/v1 with: @@ -104,9 +100,11 @@ jobs: - name: "Download build artefacts 📥" uses: actions/download-artifact@v4.1.7 with: - name: ${{ matrix.directory }}-package + name: Packages-${{ matrix.directory }} path: dist + - run: tar xf dist/*.tar.gz --strip-components=1 + - name: "Upload to PyPI 🚀" uses: pypa/gh-action-pypi-publish@release/v1 with: diff --git a/docusaurus-docs/community/contribute/contribute-docs.md b/docusaurus-docs/community/contribute/contribute-docs.md index ada490550..7f959be64 100644 --- a/docusaurus-docs/community/contribute/contribute-docs.md +++ b/docusaurus-docs/community/contribute/contribute-docs.md @@ -12,7 +12,7 @@ The new conda-store documentation website is built using [Docusaurus 2](https:// ### Pre-requisites 1. Fork and clone the conda-store repository: `git clone https://github.com//conda-store.git` -2. Install [Node.js](https://nodejs.org/en), and verify the installation with `node -`v` +2. Install [Node.js](https://nodejs.org/en), and verify the installation with `node -v` ### Local development @@ -20,7 +20,7 @@ The new conda-store documentation website is built using [Docusaurus 2](https:// You can also create an isolated environment for development. ::: -Navigate to the `/docusaurus-docs` directory, and run: +From the root of the repository, navigate to the `/docusaurus-docs` directory, and run: ```bash npm install @@ -33,6 +33,7 @@ npm run start ``` This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. +The only time you'd need to restart the server is if you are making changes to the documentation site through the `docusaurus.config.js` file. ### Build website diff --git a/docusaurus-docs/community/introduction.md b/docusaurus-docs/community/introduction.md index 80eb8ff85..a34a87676 100644 --- a/docusaurus-docs/community/introduction.md +++ b/docusaurus-docs/community/introduction.md @@ -27,7 +27,7 @@ The conda-store development team pledges to create a welcoming, supportive, and ## Governance -As a [federated project](https://github.com/conda-incubator/governance/tree/main#federated-projects) under the [conda-incubator organization](https://github.com/conda-incubator), conda-store follows the [conda-incubator governance](https://github.com/conda-incubator/governance/tree/main#conda--conda-incubator-governance). The [conda-store development team (documented through GitHub Teams)](https://github.com/orgs/conda-incubator/teams) makes all project decisions using a [consent-based approach](https://www.sociocracyforall.org/consent-decision-making/) on the issue tracker or in team meetings. +As a [federated project](https://github.com/conda-incubator/governance/tree/main#federated-projects) under the [conda-incubator organization](https://github.com/conda-incubator), conda-store follows the [conda-incubator governance](https://github.com/conda-incubator/governance/tree/main#conda--conda-incubator-governance). The [conda-store development team (documented through GitHub Teams)](https://github.com/orgs/conda-incubator/teams/conda-store) makes all project decisions using a [consent-based approach](https://www.sociocracyforall.org/consent-decision-making/) on the issue tracker or in team meetings. ## Support @@ -37,7 +37,7 @@ conda-store's issue trackers are the best way to reach the conda-store developme * [conda-store-ui](https://github.com/conda-incubator/conda-store-ui/issues/new/choose) * [jupyterlab-conda-store](https://github.com/conda-incubator/jupyterlab-conda-store/issues/new/choose) -If you are unsure about the repository, open your issues against the `conda-store`` repository and the development team will move it to the relevant space. +If you are unsure about the repository, open your issues against the `conda-store` repository and the development team will move it to the relevant space. ## Contribute diff --git a/docusaurus-docs/community/maintenance/release.md b/docusaurus-docs/community/maintenance/release.md index f97f1cc8e..34a7fc636 100644 --- a/docusaurus-docs/community/maintenance/release.md +++ b/docusaurus-docs/community/maintenance/release.md @@ -34,89 +34,18 @@ For the release tag, there should be **NO** prepended `v`. ## Release process walkthrough -1. **Agree on a release schedule**. We aim to make a monthly conda-store release. Though this will depend on whether there are any `release-blocker` issues opened or team availability. The release captain should create an issue with the release date and assign themselves as the release captain. -2. **Ensure the main branch builds a package correctly**. - 1. For conda-store and conda-store-server: +Each of the packages can be released independently. +However, it is recommended to make joint releases to ensure the latest version of `conda-store-ui` is used in `conda-store-server` and in the `jupyterlab-conda-store` extension. +To do so, the releases should be done in the following order: - ```bash - # note you will need to run this twice, once for each package - cd conda-store # or cd conda-store-server - git clean -fxdq - hatch build - ``` +1. [`conda-store-ui`](https://github.com/conda-incubator/conda-store-ui) +2. [`conda-store-server` and `conda-store`](https://github.com/conda-incubator/conda-store) +3. [`jupyterlab-conda-store`](https://github.com/conda-incubator/jupyterlab-conda-store) -3. **Start a release**. Open an issue and copy & paste the release checklist. Then follow the steps indicated in the release checklist. +The release process is as follows: -:::warning -[jupyterlab-conda-store](https://github.com/conda-incubator/jupyterlab-conda-store) has a direct dependency on [conda-store-ui](https://github.com/conda-incubator/conda-store-ui). Make sure to release conda-store-ui before releasing jupyterlab-conda-store. -::: - -### Release checklist (conda-store) - -Create an [issue with the release template](https://github.com/conda-incubator/conda-store/issues/new?assignees=&labels=release+%F0%9F%8F%B7&projects=&template=new-release.md&title=%5BREL%5D+-+%3Crelease+number%3E), or copy & paste the steps below, to release a new conda-store version. Close the issue when it is done. - -:::caution -There are two packages: the [conda-store](https://github.com/conda-incubator/conda-store) repository; [`conda-store`](https://github.com/conda-incubator/conda-store/tree/main/conda-store) and [`conda-store-server`](https://github.com/conda-incubator/conda-store/tree/main/conda-store-server). Make sure to update both packages when releasing a new version. -::: - -```md -These steps should be taken to create a new release! -**Double-check for quality control** - -## Release details - -Scheduled release date - - -Release captain responsible - <@gh_username> - ---- - -### 1. Pre-flight checks - -- [ ] Ensure there are no [open issues with a `block-release ⛔️` label](https://github.com/conda-incubator/conda-store/issues?q=is%3Aopen+label%3A%22block-release+%E2%9B%94%EF%B8%8F%22+sort%3Aupdated-desc) - -### 2. Prepare the codebase for a new release - -- [ ] Create a new git branch for the release `git checkout -b release-2023.9.1` - - [ ] Prepare the branch just in case `git clean -fxdq` -- [ ] Bump `conda-store` version in [`conda-store/conda-store/__init__.py`](https://github.com/conda-incubator/conda-store/blob/main/conda-store/conda_store/__init__.py) -- [ ] Bump `conda-store-server` version in [`conda-store-server/conda-store-server/__init__.py`](https://github.com/conda-incubator/conda-store/blob/main/conda-store/conda_store/__init__.py) -- [ ] Update the `conda-store-ui` version users in `conda-store-server` [`conda-store-server/hatch_build.py`](https://github.com/conda-incubator/conda-store/blob/main/conda-store-server/hatch_build.py) -- [ ] Update the [CHANGELOG.md](https://github.com/conda-incubator/conda-store/blob/main/CHANGELOG.md) file with the new version, release date, and relevant changes[^github-activity]. -- [ ] Check the version locally with `hatch version` -- [ ] Build and test locally - - [ ] For `conda-store` and `conda-store-server`: - - ```bash - # note you will need to run this twice, once for each package - cd conda-store # or cd conda-store-server - hatch build - twine check dist/* - hatch clean - ``` - -- [ ] Make a release commit: ``git commit -m 'REL - 2023.9.1'`` -- [ ] Push the release (REL) commit ``git push upstream main`` -- [ ] If a **release candidate** is needed, tick this box when we're ready for a full release. - -### 3. Make the release - -- [ ] [Start a new GitHub release](https://github.com/conda-incubator/conda-store/releases/new) - - Call the release the current version, e.g. `2023.9.1` - - In the **`Choose a Tag:`** dropdown, type in the release name (e.g., `2023.9.1`) and click "Create new tag" - - In the **`Target:`** dropdown, pin it to the release commit that you've recently pushed. - - Add release notes in the field below[^github-activity], you can copy/paste the changelog from the [CHANGELOG.md](https://github.com/conda-incubator/conda-store/blob/main/CHANGELOG.md) file. -- [ ] Confirm that the release completed - - [The `release` GitHub action job](https://github.com/conda-incubator/conda-store/blob/main/.github/workflows/release.yaml) has completed successfully in the [actions tab](https://github.com/pydata/pydata-sphinx-theme/actions). - - [The `conda-store` PyPI version is updated](https://pypi.org/project/conda-store/) - - [The `conda-store-server` PyPI version is updated](https://pypi.org/project/conda-store-server/) - - [The Docker images have been published](https://github.com/conda-incubator/conda-store/blob/main/.github/workflows/build_docker_image.yaml) -- [ ] Update the [conda-forge feedstock version](https://github.com/conda-forge/conda-store-feedstock) through a PR or review and merge the regro-bot PR. - - [ ] If needed - update `meta.yaml` or `recipe.yaml` and re-render the feedstock. -- [ ] Celebrate, you're done! 🎉 - -[^github-activity]: If you wish, use [`github-activity` to generate a changelog](https://github.com/choldgraf/github-activity), eg `github-activity conda-incubator/conda-store --since 2023.9.1 --until 2023.10.1`. - -``` - - +1. **Agree on a release schedule**. We aim to make a monthly conda-store release. + Though this will depend on whether there are any `release-blocker` issues opened or team availability.The release captain should create an issue with the release date and assign themselves as the release captain. +2. **Start a release**. The release captain should open a `New release` issue on the corresponding repository and assign the issue to themselves. +3. **Prepare and make the release**. The release captain should follow the checklist items in the `New release` issue + and close the release issues once this is done.