Skip to content

Latest commit

 

History

History
114 lines (82 loc) · 3.3 KB

File metadata and controls

114 lines (82 loc) · 3.3 KB

Release Process

This document describes the steps to create and deploy a new release.

1. Pre-release: Update Version and Dependencies

Rename the ## [Unreleased] section in CHANGELOG.md to the new version

feature-implement writes each feature's entry into ## [Unreleased] as it ships, so by release time the section should already hold everything notable. Rename it to ## [Vx.y.z] - <today's date> and start a fresh empty ## [Unreleased] above it. Only author new entries from scratch if something shipped without going through feature-implement (e.g. a standalone task-implement run whose CHANGELOG entry is missing) — check the merged commits since the last release tag to be sure nothing is missing.

Update interface version

Edit version in pyproject.toml and in version.py to the new version number (e.g., x.y.z):

[tool.poetry]
version = "x.y.z"

Update dependencies

# Update Python dependencies
poetry update

# Update Node.js if necessary
nvm install node

# Update npm dependencies
npm install

Generate latest requirements files with poetry (for developers not using poetry, not used in production)

if not already done, install the export plugin:

poetry self add poetry-plugin-export
poetry export -f requirements.txt --without-hashes -o requirements.txt 
poetry export -f requirements.txt --without-hashes --only dev -o requirements-dev.txt 

Note: Clever Cloud deploys using Docker, which installs dependencies via poetry install in the Dockerfile. No need to generate requirements.txt.

2. Testing

Ensure CSS is up to date

npm run watch

Run all tests

Install Jest globally if not already done:

npm install jest --global

Run test suites:

# Python tests (unit + integration + E2E; E2E requires running server)
# -n indicates number of parallel workers for pytest-xdist
poetry run pytest tests/e2e -n 4 --base-url http://localhost:8000
poetry run pytest tests --ignore=tests/e2e

# JavaScript unit tests
npm run jest

All tests must pass before proceeding.

Update documentation

3. Create Release Commit and PR

Create version commit

Create a commit with message starting with [Vx.y.z]:

git add .
git commit -m "[Vx.y.z] Release description"

Create Pull Request

  1. Push your branch to GitHub
  2. Create a PR to main branch
  3. Wait for CI to pass
  4. Request review from team members

Deploy to PreProd (staging)

git push clever <feature-branch-name>:master

Test the PreProd deployment at: https://dev.e-footprint.boavizta.org

4. Deploy to Clever Cloud

Once the PR is approved and merged to main:

Deploy to Production

git push clever-prod main:master

The production site will be available at: https://e-footprint.boavizta.org

Note: Both PreProd and Production Clever Cloud environments expect code pushed to their master branch.

See DEPLOY_TO_PROD.md for detailed deployment instructions and troubleshooting.

5. Post-deployment

  • Verify the application works on both PreProd and Production
  • Monitor Clever Cloud logs for any errors
  • Create a GitHub release with the version tag and changelog