Skip to content

Commit 4c2049b

Browse files
committed
Update AGENTS.md
1 parent 87b11f4 commit 4c2049b

1 file changed

Lines changed: 33 additions & 3 deletions

File tree

AGENTS.md

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ Guidelines for AI coding agents working on this repository.
1313

1414
- Formatting is enforced by [Ruff](https://docs.astral.sh/ruff/). Run both of the following before committing:
1515
```
16-
ruff check --select I --fix
17-
ruff format
16+
uv ruff check --select I --fix
17+
uv ruff format
1818
```
1919
- Line length is 88 characters (the default). This limit applies to all code, including docstrings.
20-
- Docstrings follow [NumPy style](https://numpydoc.readthedocs.io/en/latest/format.html), but use standard Markdown syntax instead of reStructuredText. In particular, inline code uses single backticks (`` `x` ``), not double backticks (` ``x`` `).
20+
- Docstrings follow [NumPy style](https://numpydoc.readthedocs.io/en/latest/format.html), but use standard Markdown syntax instead of reStructuredText and a line length of 88 characters. In particular, inline code formatting uses single backticks (`` `x` ``), not double backticks (` ``x`` `).
2121
- Inline comments should start with a lower-case letter and be a single sentence where possible.
2222

2323
## Changelog
@@ -32,3 +32,33 @@ Every PR must include an entry in the `[UNRELEASED]` section of [CHANGELOG.md](C
3232

3333
- Use the imperative mood and start with a capital letter (e.g., `Fix crash when loading XDF files`).
3434
- Keep the subject line concise (72 characters or fewer).
35+
36+
## Icons
37+
38+
- MNELAB bundles its icons in `src/mnelab/icons`, which contains `light` and `dark` subfolders for the two themes.
39+
- Any added or modified icon must be updated for both themes.
40+
- All icons are SVGs from the [Material Symbols](https://fonts.google.com/icons?utm_source=chatgpt.com) icon set or follow its style.
41+
- To add a new icon:
42+
43+
1. Download the icon from the Material Symbols website.
44+
2. Rename it to reflect its intended action.
45+
3. Place it in `icons/light/actions`.
46+
4. Edit the SVG and add `fill="black"` to the `<svg>` tag.
47+
5. Copy the SVG to `icons/dark/actions` and change the fill attribute to `fill="white"`.
48+
49+
## Release
50+
51+
1. Remove the `.dev0` suffix from the `version` field in `pyproject.toml` (and/or adapt the version to be released if necessary).
52+
2. Run `uv lock` to update `uv.lock` with the new version.
53+
3. Update the section in `CHANGELOG.md` corresponding to the new release with the version and current date.
54+
4. Update the section on the standalone installers in `README.md` and `docs/tutorial/index.md` (use the to-be-released version in the URLs, e.g., https://github.com/cbrnr/mnelab/releases/download/v1.0.3/MNELAB-1.0.3.exe).
55+
5. Commit these changes and push.
56+
6. Create a new release on GitHub and use the version as the tag name (make sure to prepend the version with a `v`, e.g. `v0.7.0`).
57+
7. A GitHub Action takes care of building and uploading wheels to PyPI as well as adding standalone installers to the release.
58+
59+
This concludes the new release. Now prepare the source for the next planned release as follows:
60+
61+
1. Update the `version` field to the next planned release and append `.dev0`.
62+
2. Run `uv lock` to update `uv.lock` with the new version.
63+
3. Start a new section at the top of `CHANGELOG.md` titled `## [UNRELEASED] · YYYY-MM-DD`.
64+
4. Commit ("Prepare next dev version") and push.

0 commit comments

Comments
 (0)