Merge pull request '[GitHub PR #4] Update Contributing and pyproject for GitHub' (#3) from github-pr-4 into main
All checks were successful
Publish Python Package to PyPI / deploy (push) Successful in 20s
All checks were successful
Publish Python Package to PyPI / deploy (push) Successful in 20s
Reviewed-on: #3
This commit is contained in:
@ -8,23 +8,26 @@ First off, thank you for considering contributing! We welcome any contributions,
|
|||||||
* [Suggesting Enhancements](#suggesting-enhancements)
|
* [Suggesting Enhancements](#suggesting-enhancements)
|
||||||
* [Setting Up the Development Environment](#setting-up-the-development-environment)
|
* [Setting Up the Development Environment](#setting-up-the-development-environment)
|
||||||
* [Running Tests](#running-tests)
|
* [Running Tests](#running-tests)
|
||||||
|
* [Our CI Process & The Gitea Bridge](#our-ci-process--the-gitea-bridge)
|
||||||
* [Pull Request Process](#pull-request-process)
|
* [Pull Request Process](#pull-request-process)
|
||||||
|
|
||||||
## Reporting Bugs
|
## Reporting Bugs
|
||||||
|
|
||||||
If you find a bug, please open an issue on our Gitea issue tracker. Please include as many details as possible, such as your OS, Python version, steps to reproduce, and any error messages.
|
If you find a bug, please open an issue on our GitHub issue tracker. Please include as many details as possible, such as your OS, Python version, steps to reproduce, and any error messages.
|
||||||
|
[Report a Bug](https://github.com/jono-rams/PolySolve/issues/new?assignees=&labels=bug&template=bug_report.md&title=)
|
||||||
|
|
||||||
## Suggesting Enhancements
|
## Suggesting Enhancements
|
||||||
|
|
||||||
If you have an idea for a new feature or an improvement, please open an issue to discuss it. This allows us to coordinate efforts and ensure the proposed change aligns with the project's goals.
|
If you have an idea for a new feature or an improvement, please open an issue to discuss it. This allows us to coordinate efforts and ensure the proposed change aligns with the project's goals.
|
||||||
|
[Suggest an Enhancement](https://github.com/jono-rams/PolySolve/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=)
|
||||||
|
|
||||||
## Setting Up the Development Environment
|
## Setting Up the Development Environment
|
||||||
|
|
||||||
1. **Fork the repository** on Gitea.
|
1. **Fork the repository** on GitHub.
|
||||||
|
|
||||||
2. **Clone your fork** locally:
|
2. **Clone your fork** locally:
|
||||||
```bash
|
```bash
|
||||||
git clone [https://gitea.example.com/YourUsername/PolySolve.git](https://gitea.example.com/YourUsername/PolySolve.git)
|
git clone git clone https://github.com/YourUsername/PolySolve.git
|
||||||
cd PolySolve
|
cd PolySolve
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -58,34 +61,33 @@ We use `pytest` for automated testing. After setting up the development environm
|
|||||||
pytest
|
pytest
|
||||||
```
|
```
|
||||||
|
|
||||||
This will automatically discover and run all tests located in the `tests/` directory.
|
This will automatically discover and run all tests located in the `tests/` directory. All tests should pass before you submit your changes.
|
||||||
|
If you are adding a new feature or fixing a bug, please add a corresponding test case to ensure the code is working correctly and to prevent future regressions.
|
||||||
|
|
||||||
All tests should pass before you submit your changes. If you are adding a new feature or fixing a bug, please add a corresponding test case to ensure the code is working correctly and to prevent future regressions.
|
## Our CI Process & The Gitea Bridge
|
||||||
|
|
||||||
## CI & Automated Testing Environment
|
To ensure that all contributions are consistent and stable, our test suite is executed automatically in a controlled environment. Here’s how it works:
|
||||||
|
1. Our canonical source of truth and CI/CD runners are managed on our private Gitea instance.
|
||||||
|
2. When you open a Pull Request on GitHub, our "Gitea Bridge" bot automatically mirrors your changes to a corresponding PR on our Gitea instance.
|
||||||
|
3. The tests are run using Gitea Actions within our specific, reproducible environment.
|
||||||
|
4. The results (success or failure) are then reported back to your GitHub Pull Request via a status check named "Gitea CI Bridge".
|
||||||
|
|
||||||
To ensure that all contributions are consistent and stable, our test suite is executed automatically via Gitea Actions. Your pull request must pass all these checks before it can be merged.
|
Your pull request must pass all these checks before it can be merged.
|
||||||
|
|
||||||
Our CI environment is the ultimate source of truth. It is built using a custom Docker image to lock down dependencies and guarantee reproducibility.
|
|
||||||
|
|
||||||
### Reference Environment Specification
|
### Reference Environment Specification
|
||||||
|
|
||||||
|
You can replicate our CI environment exactly to minimize "it works on my machine" issues.
|
||||||
* **Base OS:** Ubuntu 24.04
|
* **Base OS:** Ubuntu 24.04
|
||||||
* **CUDA Toolkit:** 12.5.1
|
* **CUDA Toolkit:** 12.5.1
|
||||||
* **Base Docker Image:** `nvidia/cuda:12.5.1-devel-ubuntu24.04`
|
* **Base Docker Image:** `nvidia/cuda:12.5.1-devel-ubuntu24.04`
|
||||||
* **Node.js Version:** 20.x
|
* **Node.js Version:** 20.x
|
||||||
* **Python Versions Tested:** 3.8, 3.10, 3.12
|
* **Python Versions Tested:** 3.8, 3.10, 3.12
|
||||||
|
* **CI Docker Image:** You can pull the exact image used by our runners from Docker Hub:
|
||||||
### Reproducing the Environment
|
|
||||||
|
|
||||||
You can replicate our CI environment exactly by using the public Docker image we built for our runners. You can pull it from Docker Hub:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker pull c1ph3rd3v/gitea-runner-cuda-node:12.5.1-ubuntu24.04
|
docker pull c1ph3rd3v/gitea-runner-cuda-node:12.5.1-ubuntu24.04
|
||||||
```
|
```
|
||||||
|
|
||||||
Using this Docker image for your local development will ensure your code runs in the same environment as our automated tests, minimizing "it works on my machine" issues.
|
|
||||||
|
|
||||||
## Pull Request Process
|
## Pull Request Process
|
||||||
|
|
||||||
1. Create a new branch for your feature or bugfix from the `main` branch:
|
1. Create a new branch for your feature or bugfix from the `main` branch:
|
||||||
@ -99,7 +101,7 @@ Using this Docker image for your local development will ensure your code runs in
|
|||||||
pytest
|
pytest
|
||||||
```
|
```
|
||||||
5. Commit your changes with a clear and descriptive commit message.
|
5. Commit your changes with a clear and descriptive commit message.
|
||||||
6. Push your branch to your fork on Gitea.
|
6. Push your branch to your fork on GitHub.
|
||||||
7. Open a pull request to the `main` branch of the original `PolySolve` repository. Please provide a clear title and description for your pull request.
|
7. Open a **Pull Request** to the `main` branch of the `jono-rams/PolySolve` repository on **GitHub**. Please provide a clear title and description for your pull request.
|
||||||
|
|
||||||
Once you submit your pull request, our automated CI tests will run. We will review your contribution and provide feedback as soon as possible. Thank you for your contribution!
|
Once you submit your pull request, our automated CI tests will run. We will review your contribution and provide feedback as soon as possible. Thank you for your contribution!
|
||||||
|
@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
[project]
|
[project]
|
||||||
# --- Core Metadata ---
|
# --- Core Metadata ---
|
||||||
name = "polysolve"
|
name = "polysolve"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
authors = [
|
authors = [
|
||||||
{ name="Jonathan Rampersad", email="jonathan@jono-rams.work" },
|
{ name="Jonathan Rampersad", email="jonathan@jono-rams.work" },
|
||||||
]
|
]
|
||||||
@ -42,5 +42,6 @@ cuda12 = ["cupy-cuda12x"]
|
|||||||
dev = ["pytest"]
|
dev = ["pytest"]
|
||||||
|
|
||||||
[project.urls]
|
[project.urls]
|
||||||
Homepage = "https://gitea.jono-rams.work/jono/PolySolve"
|
Homepage = "https://github.com/jono-rams/PolySolve"
|
||||||
"Bug Tracker" = "https://gitea.jono-rams.work/jono/PolySolve/issues"
|
"Source Code" = "https://github.com/jono-rams/PolySolve"
|
||||||
|
"Bug Tracker" = "https://github.com/jono-rams/PolySolve/issues"
|
||||||
|
Reference in New Issue
Block a user