Skip to content

Commit e239ca4

Browse files
sayalaruanoenryH
andauthored
📝 Docs: Create CHANGELOG.md using git-changelog (#38)
* 📝 Docs: add git-changelog to dev dependencies, create toml config, and generate CHANGELOG.md file * 📝 Docs(README.md): Update README with information about changelog. * 📝 Docs: Add the changelog.md file into the sphinx docs * 🎨 Format(docs/index.md): add title to avoid blank spcae and move changelog to the last part of the project support section * ✨ Feat(docs): add makefile to autmate the clean and build of the docs, and update the docs README with this change * 🙈 Docs: add docs/sections_readme to gitignore * Remove commit from Fix imports PR in CHANGELOG.md Co-authored-by: Henry Webel <[email protected]> * Remove commit from Remove Python restrictions PR in CHANGELOG.md Co-authored-by: Henry Webel <[email protected]> * 📝 Docs: update CHANGELOG and .git-changelog.toml with the 0.1.0 release * 📝 Docs(docs/README.md): Include commands from the makefile in the README just in case users cannot run the makefile * 📝 Docs(CHANGELOG.md): change header to release notes * ✅ Test: try github action to generate changelogf from release * ✅ Test: create an indep file to test the changelog on the feature branch * ✅ Test: update ga file to test changelog * 🐛 Fix(.github/workflows/changelog-test.yml): set commit and push to false to prevent error * 🐛 Fix(.github/workflows/changelog-test.yml): add header to keep it in the generated changelog * 📝 Docs: update CHANGELOG.md using the changelog-from-release tool and update the github action to automate it after every release * 🔥 Refactor: delete .git-changelog.toml and update README with the new tool to create changelog * 🎨 Style: fix linting of the changelog header * ➖ Refactor: remove git-changelog dev dependency --------- Co-authored-by: Henry Webel <[email protected]>
1 parent 956963e commit e239ca4

File tree

8 files changed

+188
-12
lines changed

8 files changed

+188
-12
lines changed

.github/workflows/cdci.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,27 @@ jobs:
5151
- name: Run tests
5252
run: python -m pytest tests
5353

54+
changelog:
55+
name: Update changelog
56+
if: github.event_name == 'release' && github.event.action == 'published'
57+
runs-on: ubuntu-latest
58+
steps:
59+
- name: Checkout main branch
60+
uses: actions/checkout@v4
61+
with:
62+
ref: main
63+
64+
- name: Update CHANGELOG.md
65+
uses: rhysd/changelog-from-release/action@v3
66+
with:
67+
file: CHANGELOG.md
68+
github_token: ${{ secrets.GITHUB_TOKEN }}
69+
header: |
70+
# Release Notes
71+
72+
All notable changes to this project are documented in this file. It was automatically generated with
73+
the [changelog-from-release](https://github.com/rhysd/changelog-from-release) tool.
74+
5475
publish:
5576
name: Publish package
5677
if: startsWith(github.ref, 'refs/tags')

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,3 +166,4 @@ cython_debug/
166166
test_results/
167167
docs/api_examples/outputs/
168168
docs/api_examples/iframe_figures/
169+
docs/sections_readme/

CHANGELOG.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Release Notes
2+
3+
All notable changes to this project are documented in this file. It was automatically generated with
4+
the [changelog-from-release](https://github.com/rhysd/changelog-from-release) tool.
5+
6+
<a id="v0.1.0"></a>
7+
# [v0.1.0](https://github.com/Multiomics-Analytics-Group/vuecore/releases/tag/v0.1.0) - 2025-09-18
8+
9+
## What's Changed
10+
* :sparkles: first rudementary API documentation by [@enryH](https://github.com/enryH) in [#9](https://github.com/Multiomics-Analytics-Group/vuecore/pull/9)
11+
* Add logo by [@sayalaruano](https://github.com/sayalaruano) in [#10](https://github.com/Multiomics-Analytics-Group/vuecore/pull/10)
12+
* Refactor vuecore library with an initial example for scatter plot by [@sayalaruano](https://github.com/sayalaruano) in [#11](https://github.com/Multiomics-Analytics-Group/vuecore/pull/11)
13+
* Remove_python_restriction by [@enryH](https://github.com/enryH) in [#15](https://github.com/Multiomics-Analytics-Group/vuecore/pull/15)
14+
* :wrench: set up sync of notebooks to py:percent format (manually) by [@enryH](https://github.com/enryH) in [#17](https://github.com/Multiomics-Analytics-Group/vuecore/pull/17)
15+
* Update logo by [@sayalaruano](https://github.com/sayalaruano) in [#19](https://github.com/Multiomics-Analytics-Group/vuecore/pull/19)
16+
* Update scatter plot to align with the Plotly API by [@sayalaruano](https://github.com/sayalaruano) in [#21](https://github.com/Multiomics-Analytics-Group/vuecore/pull/21)
17+
* ✨ Feat: Add scripts, test, and example for line plot by [@sayalaruano](https://github.com/sayalaruano) in [#20](https://github.com/Multiomics-Analytics-Group/vuecore/pull/20)
18+
* 🧑‍💻 Dev: add PR templates for general contributions and add new plots by [@sayalaruano](https://github.com/sayalaruano) in [#22](https://github.com/Multiomics-Analytics-Group/vuecore/pull/22)
19+
* Update readme, license, and contributing by [@sayalaruano](https://github.com/sayalaruano) in [#24](https://github.com/Multiomics-Analytics-Group/vuecore/pull/24)
20+
* :wrench: configure the plotly renderer on Read The Docs by [@enryH](https://github.com/enryH) in [#18](https://github.com/Multiomics-Analytics-Group/vuecore/pull/18)
21+
* ✨ Feat: Add scripts, test, and example for bar plot by [@sayalaruano](https://github.com/sayalaruano) in [#26](https://github.com/Multiomics-Analytics-Group/vuecore/pull/26)
22+
* File formats enum by [@sayalaruano](https://github.com/sayalaruano) in [#27](https://github.com/Multiomics-Analytics-Group/vuecore/pull/27)
23+
* ✨ Feat: Add scripts, test, and example for box plot by [@sayalaruano](https://github.com/sayalaruano) in [#30](https://github.com/Multiomics-Analytics-Group/vuecore/pull/30)
24+
* Add script to split readme and organize documentation by [@sayalaruano](https://github.com/sayalaruano) in [#29](https://github.com/Multiomics-Analytics-Group/vuecore/pull/29)
25+
* ✅ Enable pytest on github action by [@sayalaruano](https://github.com/sayalaruano) in [#28](https://github.com/Multiomics-Analytics-Group/vuecore/pull/28)
26+
* ✨ Create Base Plotly Schema by [@sayalaruano](https://github.com/sayalaruano) in [#31](https://github.com/Multiomics-Analytics-Group/vuecore/pull/31)
27+
* ✨Factory function for user-facing plot functions by [@sayalaruano](https://github.com/sayalaruano) in [#33](https://github.com/Multiomics-Analytics-Group/vuecore/pull/33)
28+
* ✨Factory function for building plotly plot functions by [@sayalaruano](https://github.com/sayalaruano) in [#34](https://github.com/Multiomics-Analytics-Group/vuecore/pull/34)
29+
* 📝 Docs: Update contributing guidelines by [@sayalaruano](https://github.com/sayalaruano) in [#37](https://github.com/Multiomics-Analytics-Group/vuecore/pull/37)
30+
* ✨ Feat: Add scripts, test, and example for violin plot by [@sayalaruano](https://github.com/sayalaruano) in [#39](https://github.com/Multiomics-Analytics-Group/vuecore/pull/39)
31+
* ✨ Feat: Add scripts, test, and example for histogram plot by [@sayalaruano](https://github.com/sayalaruano) in [#41](https://github.com/Multiomics-Analytics-Group/vuecore/pull/41)
32+
* 📝 Docs(src/vuecore/README.md): Add Readme to explain the project structure and workflow by [@sayalaruano](https://github.com/sayalaruano) in [#42](https://github.com/Multiomics-Analytics-Group/vuecore/pull/42)
33+
34+
## New Contributors
35+
* [@sayalaruano](https://github.com/sayalaruano) made their first contribution in [#10](https://github.com/Multiomics-Analytics-Group/vuecore/pull/10)
36+
37+
**Full Changelog**: https://github.com/Multiomics-Analytics-Group/vuecore/compare/v0.0.5...v0.1.0
38+
39+
[Changes][v0.1.0]
40+
41+
42+
<a id="v0.0.5"></a>
43+
# [v0.0.5](https://github.com/Multiomics-Analytics-Group/vuecore/releases/tag/v0.0.5) - 2025-01-31
44+
45+
## What's Changed
46+
* :truck: move PCA plot from acore normalization example by [@enryH](https://github.com/enryH) in [#8](https://github.com/Multiomics-Analytics-Group/vuecore/pull/8)
47+
48+
49+
**Full Changelog**: https://github.com/Multiomics-Analytics-Group/vuecore/compare/v0.0.4...v0.0.5
50+
51+
[Changes][v0.0.5]
52+
53+
54+
<a id="v0.0.4"></a>
55+
# [v0.0.4](https://github.com/Multiomics-Analytics-Group/vuecore/releases/tag/v0.0.4) - 2025-01-29
56+
57+
## What's Changed
58+
* :truck: add functionality from acore by [@enryH](https://github.com/enryH) in [#7](https://github.com/Multiomics-Analytics-Group/vuecore/pull/7)
59+
60+
61+
**Full Changelog**: https://github.com/Multiomics-Analytics-Group/vuecore/compare/v0.0.3...v0.0.4
62+
63+
[Changes][v0.0.4]
64+
65+
66+
<a id="v0.0.3"></a>
67+
# [v0.0.3](https://github.com/Multiomics-Analytics-Group/vuecore/releases/tag/v0.0.3) - 2024-12-18
68+
69+
- fix import error (file was not renamed correctly)
70+
**Full Changelog**: https://github.com/Multiomics-Analytics-Group/vuecore/compare/v0.0.2...v0.0.3
71+
72+
[Changes][v0.0.3]
73+
74+
75+
<a id="v0.0.2"></a>
76+
# [v0.0.2](https://github.com/Multiomics-Analytics-Group/vuecore/releases/tag/v0.0.2) - 2024-12-17
77+
78+
Prepare for use in acore api examples: format and fix imports
79+
80+
## What's Changed
81+
* :format: format with black by [@enryH](https://github.com/enryH) in [#5](https://github.com/Multiomics-Analytics-Group/vuecore/pull/5)
82+
* Fix imports by [@enryH](https://github.com/enryH) in [#3](https://github.com/Multiomics-Analytics-Group/vuecore/pull/3)
83+
84+
85+
**Full Changelog**: https://github.com/Multiomics-Analytics-Group/vuecore/compare/v0.0.1...v0.0.2
86+
87+
[Changes][v0.0.2]
88+
89+
90+
<a id="v0.0.1"></a>
91+
# [v0.0.1](https://github.com/Multiomics-Analytics-Group/vuecore/releases/tag/v0.0.1) - 2024-11-29
92+
93+
First release to have a development version on PyPI. All plots and their dependencies needs to be tested.
94+
95+
## What's Changed
96+
* Mk pkg by [@enryH](https://github.com/enryH) in [#1](https://github.com/Multiomics-Analytics-Group/vuecore/pull/1)
97+
98+
## New Contributors
99+
* [@enryH](https://github.com/enryH) made their first contribution in [#1](https://github.com/Multiomics-Analytics-Group/vuecore/pull/1)
100+
101+
**Full Changelog**: https://github.com/Multiomics-Analytics-Group/vuecore/commits/v0.0.1
102+
103+
[Changes][v0.0.1]
104+
105+
106+
[v0.1.0]: https://github.com/Multiomics-Analytics-Group/vuecore/compare/v0.0.5...v0.1.0
107+
[v0.0.5]: https://github.com/Multiomics-Analytics-Group/vuecore/compare/v0.0.4...v0.0.5
108+
[v0.0.4]: https://github.com/Multiomics-Analytics-Group/vuecore/compare/v0.0.3...v0.0.4
109+
[v0.0.3]: https://github.com/Multiomics-Analytics-Group/vuecore/compare/v0.0.2...v0.0.3
110+
[v0.0.2]: https://github.com/Multiomics-Analytics-Group/vuecore/compare/v0.0.1...v0.0.2
111+
[v0.0.1]: https://github.com/Multiomics-Analytics-Group/vuecore/tree/v0.0.1
112+
113+
<!-- Generated by https://github.com/rhysd/changelog-from-release v3.9.0 -->

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,11 @@ Full details for both licenses can be found in the [LICENSE][vuecore-license] fi
6161

6262
## Contributing
6363

64-
VueCore is an open-source project, and we welcome contributions of all kinds via GitHub issues and pull requests. You can report bugs, suggest improvements, propose new features, or implement changes. Please follow the guidelines in the [CONTRIBUTING](CONTRIBUTING.md) file to ensure that your contribution is easily integrated into the project.
64+
VueCore is an open-source project, and we welcome contributions of all kinds via GitHub issues and pull requests. You can report bugs, suggest improvements, propose new features, or implement changes.
65+
66+
We follow the [Conventional Commits][conventional-commits] specification for commit messages and use the [changelog-from-release][changelog-from-release-repo] tool to automatically generate the [CHANGELOG](CHANGELOG.md).
67+
68+
Please follow the guidelines in the [CONTRIBUTING](CONTRIBUTING.md) file to ensure that your contribution is easily integrated into the project.
6569

6670
## Credits and acknowledgements
6771

@@ -82,6 +86,8 @@ We appreciate your feedback! If you have any comments, suggestions, or run into
8286
[pulls]: https://github.com/Multiomics-Analytics-Group/vuecore/pulls
8387
[vuegen]: https://github.com/Multiomics-Analytics-Group/vuegen
8488
[acore]: https://github.com/Multiomics-Analytics-Group/acore
89+
[conventional-commits]: https://www.conventionalcommits.org/
90+
[changelog-from-release-repo]: https://github.com/rhysd/changelog-from-release
8591
[Mona]: https://multiomics-analytics-group.github.io/
8692
[Biosustain]: https://www.biosustain.dtu.dk/
8793
[new-issue]:https://github.com/Multiomics-Analytics-Group/vuecore/issues/new

docs/Makefile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# List of directories to remove
2+
CLEAN_BUILD_DIRS = _build jupyter_execute
3+
CLEAN_DIRS = $(CLEAN_BUILD_DIRS) downloaded reference sections_readme
4+
5+
.PHONY: clean clean_build
6+
7+
# Removes the specified directories
8+
clean:
9+
rm -rf $(CLEAN_DIRS)
10+
11+
clean_build:
12+
rm -rf $(CLEAN_BUILD_DIRS)
13+
14+
build:
15+
sphinx-apidoc --force --implicit-namespaces --module-first -o reference ../src/vuecore
16+
python split_readme.py
17+
sphinx-build -n -W --keep-going -b html ./ ./_build/

docs/README.md

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,40 @@
22

33
In order to build the docs you need to
44

5-
1. install sphinx and additional support packages
6-
2. build the package reference files
7-
3. run sphinx to create a local html version
5+
1. Install sphinx and additional support packages
6+
2. Build the package reference files
7+
3. Run sphinx to create a local html version
88

99
The documentation is build using readthedocs automatically.
1010

1111
Install the docs dependencies of the package (as speciefied in toml):
1212

1313
```bash
1414
# in main folder
15-
# pip install ".[docs]"
16-
poetry install --with docs
15+
pip install ".[docs]"
1716
```
1817

1918
## Build docs using Sphinx command line tools
2019

21-
Command to be run from `path/to/docs`, i.e. from within the `docs` package folder:
20+
We use `sphinx-apidoc` to create the API reference files from the source code and
21+
`sphinx-build` to create the html files. Also, we use a custom script `split_readme.py` to
22+
split the main `README.md` file into smaller sections for inclusion in the docs.
2223

23-
Options:
24+
We provide a [Makefile](https://github.com/Multiomics-Analytics-Group/vuecore/blob/HEAD/docs/Makefile)
25+
to simplify the cleaning and building process, which you can run from the `docs` folder:
2426

25-
- `--separate` to build separate pages for each (sub-)module
27+
```bash
28+
# pwd: docs
29+
make clean
30+
make build
31+
```
32+
33+
Alternatevely, you can run these commands manually each at a time, as follows:
2634

2735
```bash
2836
# pwd: docs
29-
# apidoc
3037
sphinx-apidoc --force --implicit-namespaces --module-first -o reference ../src/vuecore
31-
# build docs
38+
python split_readme.py
3239
sphinx-build -n -W --keep-going -b html ./ ./_build/
3340
```
3441

docs/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
## VueCore Documentation
12
<!-- https://myst-parser.readthedocs.io/en/latest/faq/index.html
23
#include-a-file-from-outside-the-docs-folder-like-readme-md -->
34

@@ -42,6 +43,7 @@ reference/vuecore
4243
sections_readme/contributing
4344
sections_readme/credits
4445
sections_readme/contact
46+
sections_readme/changelog
4547
```
4648

4749
```{toctree}

docs/split_readme.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def process_readme(readme_path, output_dir):
103103
else:
104104
raise ValueError(f"Section '{section_title}' not found in README")
105105

106-
# Include CONTRIBUTING.md with its own link references
106+
# Copy CONTRIBUTING.md with its own link references to the output directory
107107
contrib_path = readme_path.parent / "CONTRIBUTING.md"
108108
try:
109109
raw_contrib = contrib_path.read_text()
@@ -121,6 +121,15 @@ def process_readme(readme_path, output_dir):
121121
except FileNotFoundError as e:
122122
raise FileNotFoundError(f"CONTRIBUTING.md not found at {contrib_path}") from e
123123

124+
# Copy CHANGELOG.md to the output directory
125+
changelog_path = readme_path.parent / "CHANGELOG.md"
126+
try:
127+
raw_changelog = changelog_path.read_text()
128+
(output_dir / "changelog.md").write_text(raw_changelog)
129+
print("Generated changelog.md")
130+
except FileNotFoundError as e:
131+
raise FileNotFoundError(f"CHANGELOG.md not found at {changelog_path}") from e
132+
124133

125134
if __name__ == "__main__":
126135
default_readme = Path(__file__).resolve().parent.parent / "README.md"

0 commit comments

Comments
 (0)