You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
), there are still issues when they are retrieved through indirect means ([#633](https://github.com/aiondemand/AIOD-rest-api/issues/633)).
46
36
47
37
## Creating a release
48
38
To create a new release:
49
39
50
40
1. Make sure all requested functionality is merged with the `develop` branch.
51
-
2. Create a release branch from develop: `git checkout -b release/[VERSION]`. Example of version: `1.1.20231129`
52
-
3. Update the version in `pyproject.toml` on the release branch.
53
-
4. Test all (most of) the functionality. Checkout the project in a new directory and remove all
54
-
your local images, and make sure it works out-of-the box.
55
-
5. Go to https://github.com/aiondemand/AIOD-rest-api/releases and draft a new release from the
56
-
release branch. Look at all closed PRs and create a changelog.
57
-
6. Create a PR from release branch to develop. Make sure that when it is merged, the release branch is preserved.
58
-
7. Deploy on the server(s):
59
-
- Check which services currently work (before the update). It's a sanity check for if a service _doesn't_ work later.
60
-
- Bring the services down.
61
-
- Update the code on the server by checking out the release.
62
-
- If the release contains new configuration options or configuration defaults, make sure that the override files are updated as needed.
63
-
- Start the services without connectors.
64
-
- Make sure the latest database migrations are applied: see ["Schema Migrations"](schema/migration.md#update-the-database)
65
-
- Restart the services with connectors.
66
-
9. Notify everyone (e.g., in the API channel in Slack).
41
+
2. Make sure the version in `pyproject.toml` is updated in the `develop` branch.
42
+
3. Make a release on GitHub: https://github.com/aiondemand/AIOD-rest-api/releases
43
+
4. Make sure the release notes follow a similar style, use the merged PRs since last release (use e.g. filter `merged:>=2025-08-2`).
44
+
45
+
Deploy the new release to the test server. If that works (preferably leave it up for a while), then deploy to production.
46
+
Deploying an update:
47
+
48
+
1. Create an additional database backup: `./scripts/mysql_dump.sh`
49
+
1. Check which services currently work (before the update). It's a sanity check for if a service _doesn't_ work later.
50
+
1. See which files, if any, are changed locally: `git status`
51
+
- Stash the changes, or keep track of them in some way. Try to make a note to update the software so that local changes are not necessary.
52
+
1. Check out the release (e.g., `git fetch origin && git checkout v2.0.20250802`)
53
+
- If absolutely necessary, reapply the changes. Again: make a note to avoid needing any local changes next time.
54
+
1. If the release contains new configuration options or configuration defaults, make sure that the override files are updated as needed.
55
+
1. Rebuild the images: `./scripts/build.sh`
56
+
1. Build the alembic image separately (it's not included in the above script), see `docker build -f alembic/Dockerfile . -t aiod-migration` ([docs](schema/migration.md).
57
+
1. Bring down the services: `./scripts/down.sh`
58
+
1. Bring the database back up: `docker compose --env-file=.env --env-file=override.env up sqlserver -d`
59
+
- Runs the [migrations](schema/migration.md), if any: `docker run -v $(pwd)/alembic:/alembic:ro -v $(pwd)/src:/app -it --network aiod-rest-api_default aiod-migration`
60
+
- Start the remainder of the services: `./scripts/up.sh`
61
+
- To make sure the latest taxonomy is also included:
62
+
- Copy the `export/taxonomies.json` file from the `metadata-schema` repository and have it update on startup, or
63
+
- run the taxonomy service independently (preferred, but currently broken?)
64
+
- Notify everyone (e.g., in the API channel in Slack).
0 commit comments