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
Copy file name to clipboardExpand all lines: AGENTS.md
+33-3Lines changed: 33 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,11 +13,11 @@ Guidelines for AI coding agents working on this repository.
13
13
14
14
- Formatting is enforced by [Ruff](https://docs.astral.sh/ruff/). Run both of the following before committing:
15
15
```
16
-
ruff check --select I --fix
17
-
ruff format
16
+
uv ruff check --select I --fix
17
+
uv ruff format
18
18
```
19
19
- 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`` `).
21
21
- Inline comments should start with a lower-case letter and be a single sentence where possible.
22
22
23
23
## Changelog
@@ -32,3 +32,33 @@ Every PR must include an entry in the `[UNRELEASED]` section of [CHANGELOG.md](C
32
32
33
33
- Use the imperative mood and start with a capital letter (e.g., `Fix crash when loading XDF files`).
34
34
- 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`.
0 commit comments