Skip to content

Commit cd23af1

Browse files
mkumar73Copilot
andcommitted
docs: update contributing guide, fix heading levels, add CHANGELOG
Co-authored-by: Copilot <copilot@github.com>
1 parent 77448cf commit cd23af1

5 files changed

Lines changed: 211 additions & 64 deletions

File tree

CHANGELOG.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# CHANGELOG
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
This project adheres to [Semantic Versioning](https://semver.org/) and uses
6+
[Conventional Commits](https://www.conventionalcommits.org/).
7+
8+
Going forward, this file is updated automatically by `cz bump` on each release.
9+
10+
---
11+
12+
## v1.6.1 (2025-04-26)
13+
14+
### Changes
15+
16+
- Renamed package from `mambular` / `deeptabular` to `deeptab`
17+
- Dynamic versioning: version is now sourced from `pyproject.toml` via `importlib.metadata`; removed `__version__.py`
18+
- CI rework: split into lint, typecheck, build, and test jobs; manual tagging with OIDC PyPI publishing; removed semantic-release automation
19+
20+
---
21+
22+
## v1.5.0 (2025-04-14)
23+
24+
### Changes
25+
26+
- Moved preprocessing to the `pretab` package; removed bundled preprocessor
27+
- Added TabR model integration
28+
- Fixed LSS bug affecting distributional output
29+
- Updated docstrings for documentation generation compatibility
30+
31+
---
32+
33+
## v1.4.0 (2025-03-24)
34+
35+
### Features
36+
37+
- Added ModernNCA model
38+
- Added training candidates support during prediction and validation in the lightning module
39+
40+
---
41+
42+
## v1.3.2 (2025-03-19)
43+
44+
### Bug Fixes
45+
46+
- Fixed `num_classes` argument for binary classification
47+
- Fixed version info extraction
48+
49+
---
50+
51+
## v1.3.1 (2025-03-17)
52+
53+
### Features
54+
55+
- Added Tangos model (classifier, regressor, and distributional variants)
56+
57+
---
58+
59+
## v1.3.0 (2025-03-13)
60+
61+
### Features
62+
63+
- Added AutoInt model
64+
- Added Trompt model
65+
- Added ENode (embedding oblivious trees) model
66+
- Fixed preprocessor bug causing `ValueError: not enough values to unpack`
67+
68+
---
69+
70+
## v1.2.0 (2025-02-17)
71+
72+
### Features
73+
74+
- Added `BaseConfig` parent class; restructured all configs to inherit from it
75+
- Added `JohnsonSU` distribution and individual preprocessing per column
76+
- Adapted embedding layer for new preprocessing pipeline
77+
- Added unit tests for PRs
78+
- Fixed column name handling (int → string) in datamodule
79+
80+
---
81+
82+
## v1.1.0 (2025-01-03)
83+
84+
### Features
85+
86+
- Added `BaseConfig` class to public init
87+
- Added `JohnsonSU` distribution support
88+
- Removed dependency on rotary embeddings
89+
90+
---
91+
92+
## v1.0.0 (2024-12-04)
93+
94+
Initial stable release.

docs/contributing.md

Lines changed: 74 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
## Contribution Guidelines
1+
# Contribution Guidelines
22

33
Thank you for considering contributing to our Python package! We appreciate your time and effort in helping us improve our project. Please take a moment to review the following guidelines to ensure a smooth and efficient contribution process.
44

5-
### Code of Conduct
5+
## Code of Conduct
66

77
We kindly request all contributors to adhere to our Code of Conduct when participating in this project. It outlines our expectations for respectful and inclusive behavior within the community.
88

9-
### Setting Up Development Environment
9+
## Setting Up Development Environment
1010

1111
Before you start contributing to the project, you need to set up your development environment. This will allow you to make changes to the codebase, run tests, and build the documentation locally. The project uses `poetry` for dependency management and packaging. Along with that, `ruff` is used for source code formatting and linting.
1212

@@ -59,7 +59,7 @@ pip install -r docs/requirements_docs.txt
5959

6060
**Note:** You can also set up a virtual environment to isolate your development environment.
6161

62-
### How to Contribute
62+
## How to Contribute
6363

6464
1. Create a new branch from `main` for your contributions. Please use descriptive and concise branch names.
6565
2. Make your desired changes or additions to the codebase.
@@ -68,7 +68,7 @@ pip install -r docs/requirements_docs.txt
6868
- `make test`
6969
5. Update the documentation and examples, if necessary.
7070
6. Build the html documentation and verify if it works as expected. We have used Sphinx for documentation, you could build the documents as follows:
71-
- `cd src/docs`
71+
- `cd docs`
7272
- `make clean`
7373
- `make html`
7474
7. Verify the html documents created under `docs/_build/html` directory. `index.html` file is the main file which contains link to all other files and doctree.
@@ -78,11 +78,71 @@ pip install -r docs/requirements_docs.txt
7878
10. Wait for the maintainers to review your pull request. Address any feedback or comments if required.
7979
11. Once approved, your changes will be merged into the main codebase.
8080

81-
### Release Workflow
81+
## Docs Workflow
82+
83+
Documentation is built with [Sphinx](https://www.sphinx-doc.org/) and hosted on [Read the Docs](https://readthedocs.org/).
84+
85+
The docs CI is defined in `.github/workflows/docs.yml` and is separate from the main CI workflow.
86+
87+
### How docs are published
88+
89+
| Trigger | CI (`docs.yml`) | Read the Docs |
90+
| --------------------------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------- |
91+
| PR touching `docs/**`, `deeptab/**`, `README.md`, or `pyproject.toml` | Sphinx build check — PR is blocked if docs are broken | No publish |
92+
| Merge to `main` | Sphinx build check | Publishes **latest** (dev) version |
93+
| Stable tag pushed (`vX.Y.Z`) | Sphinx build check from that exact tagged commit | Publishes **versioned** snapshot and updates **stable** alias |
94+
| RC tag pushed (`vX.Y.Zrc1`) | Sphinx build check from that exact tagged commit | Publishes versioned pre-release snapshot |
95+
96+
> **Note:** The docs CI `push` trigger has **no `paths:` filter** — tag pushes always run the full docs build regardless of which files changed in the tagged commit. The `paths:` filter only applies to PRs to keep checks fast.
97+
98+
> **Note:** Versioned and stable docs require **"Build tags"** to be enabled in the Read the Docs project settings under _Admin → Advanced settings_. RTD automatically sets the `stable` alias to the highest non-pre-release tag.
99+
100+
### Tag → versioned docs flow
101+
102+
```
103+
git tag -a v1.7.0 -m "Release v1.7.0"
104+
git push origin v1.7.0
105+
106+
docs.yml triggers on that exact tagged commit
107+
108+
Sphinx build succeeds (or blocks if broken)
109+
110+
RTD webhook fires → builds docs from v1.7.0 source
111+
112+
RTD publishes /en/v1.7.0/ (versioned)
113+
114+
RTD updates /en/stable/ → points to v1.7.0
115+
```
116+
117+
RC tags (`vX.Y.Zrc1`) follow the same flow but RTD does **not** update the `stable` alias for pre-release tags.
118+
119+
### Building docs locally
120+
121+
```bash
122+
# Install system dependency (macOS)
123+
brew install pandoc
124+
# or on Ubuntu
125+
sudo apt-get install pandoc
126+
127+
# Install doc dependencies
128+
pip install -r docs/requirements_docs.txt
129+
130+
# Build HTML docs (warnings treated as errors)
131+
sphinx-build -b html docs/ docs/_build/html -W --keep-going
132+
133+
# Open in browser
134+
open docs/_build/html/index.html
135+
```
136+
137+
### Version resolution
138+
139+
The docs version is read at build time from the installed package metadata via `importlib.metadata.version("deeptab")`, which reflects the version in `pyproject.toml`. No separate version file is maintained.
140+
141+
## Release Workflow
82142

83143
This project uses conventional commits and intentional, maintainer-controlled releases.
84144

85-
#### Release Process Overview
145+
### Release Process Overview
86146

87147
```
88148
1. Make Changes → 2. Conventional Commit → 3. Merge to Main → 4. CI runs
@@ -121,15 +181,15 @@ This project uses conventional commits and intentional, maintainer-controlled re
121181
- This tag push triggers `publish-pypi.yml` → builds and publishes to PyPI + creates GitHub Release
122182
- For RC tags (`vX.Y.Zrc1`), push triggers `publish-testpypi.yml` → publishes to TestPyPI instead
123183

124-
#### What Triggers a Release?
184+
### What Triggers a Release?
125185

126186
| Event | Result |
127187
| ----------------------------- | ------------------------------------- |
128188
| Push to `main` | CI tests only |
129189
| Maintainer pushes `v*` tag | PyPI publish + GitHub Release |
130190
| Maintainer pushes `v*rc*` tag | PyPI pre-release + GitHub pre-release |
131191

132-
#### Commit Types and Their Effect on Version
192+
### Commit Types and Their Effect on Version
133193

134194
Commit messages determine the version bump chosen by the maintainer when running `cz bump`:
135195

@@ -140,7 +200,7 @@ Commit messages determine the version bump chosen by the maintainer when running
140200
| `feat!:` / `BREAKING CHANGE:` | Major (x.0.0) |
141201
| `docs:`, `style:`, `refactor:`, `test:`, `chore:`, `ci:` | No release needed |
142202

143-
#### Example Scenarios
203+
### Example Scenarios
144204

145205
**Scenario 1: Documentation Update (No Release)**
146206

@@ -172,14 +232,14 @@ git push origin v1.7.0rc1
172232
# → PyPI pre-release, GitHub pre-release
173233
```
174234

175-
#### Important Notes
235+
### Important Notes
176236

177237
- **Merging to `main` never triggers a PyPI release**
178238
- **Only a manually pushed `v*` tag triggers publishing**
179239
- **Never manually edit the version number** in `pyproject.toml` — use `cz bump` on a release branch
180240
- **PyPI publishing** uses OIDC Trusted Publishing — no API tokens are stored in GitHub secrets
181241

182-
### Submitting Contributions
242+
## Submitting Contributions
183243

184244
When submitting your contributions, please ensure the following:
185245

@@ -190,11 +250,11 @@ When submitting your contributions, please ensure the following:
190250
- Update the documentation if necessary to reflect the changes made.
191251
- Ensure that your pull request has a single, logical focus.
192252
193-
### Issue Tracker
253+
## Issue Tracker
194254
195255
If you encounter any bugs, have feature requests, or need assistance, please visit our [Issue Tracker](https://github.com/OpenTabular/DeepTab/issues). Make sure to search for existing issues before creating a new one.
196256
197-
### License
257+
## License
198258
199259
By contributing to this project, you agree that your contributions will be licensed under the LICENSE of the project.
200260
Please note that the above guidelines are subject to change, and the project maintainers hold the right to reject or request modifications to any contributions. Thank you for your understanding and support in making this project better!

0 commit comments

Comments
 (0)