Thank you for considering contributing to pyCoilGen! We welcome your contributions to help make this project even better. Before you get started, take a moment to review the following guidelines.
We recommend that interested contributors start by visiting our GitHub Discussions page. Here, you can engage with the community, discuss ideas, and coordinate efforts.
- Development should be done on new branches created from the
master
branch. - When you're ready to submit your changes, create a pull request (PR) targeting the
master
branch.
- Adhere to the Google DocString formatting conventions when documenting your code.
- Follow PEP 8 guidelines for code style.
- Fork the repository and create a new branch for your feature or bug fix.
- Make your changes and ensure that the code is properly documented.
- Write appropriate tests if applicable.
- Submit a pull request with a clear title and description outlining your changes.
If you find a bug, have a feature request, or would like to suggest an improvement, open an issue on the GitHub Issues page.
Read and adhere to our Code of Conduct. Treat all contributors and users with respect and kindness.
By contributing, you agree that your contributions will be licensed under the LICENSE.txt file.
We appreciate your interest in contributing to pyCoilGen and look forward to working with you!
You can clone the project from GitHub using the following command:
git clone https://github.com/kev-m/pyCoilGen
Once you have cloned the repository, navigate to the project directory and install the required dependencies using pip
. It's recommended to use a virtual environment to manage dependencies.
cd pyCoilGen
pip install -r requirements.txt
pip install -r requirements-dev.txt
The requirements.txt
file contains the main dependencies, while requirements-dev.txt
includes additional packages for development and testing. These commands will ensure you have the necessary environment set up for contributing to pyCoilGen.
You may need to also manually install BLAS. On some Linux systems, BLAS also depends on gfortran.
$ sudo apt-get install libopenblas-dev gfortran
The FastHenry2
application is optionally used to calculate the resistance and inductance of the coil winding.
This application needs to downloaded and installed.
Go to the download page, fill out the form, then download the
FastFieldSolvers
bundle, e.g. FastFieldSolvers Software Bundle Version 5.2.0
Under Linux systems, the project should be cloned from GitHub and compiled.
$ git clone https://github.com/ediloren/FastHenry2.git
$ cd FastHenry2/src
$ make
In order to support ChangeLog generation, this project uses Conventional Commits.
This means that there must be at least one commit message for any change worth announcing.
The commit messages are of the form:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
The commit contains the following structural elements, to communicate intent to users:
fix:
: a commit of the typefix:
patches a bug in the codebase (this correlates withPATCH
in Semantic Versioning).feat:
: a commit of the typefeat:
introduces a new feature to the codebase (this correlates withMINOR
in Semantic Versioning).BREAKING CHANGE
: a commit that has a footerBREAKING CHANGE:
, or appends a!
after the type/scope, introduces a breaking API change (correlating withMAJOR
in Semantic Versioning). A BREAKING CHANGE can be part of commits of any type.- Other types are typically one of
build:
,chore:
,ci:
,docs:
,style:
,refactor:
,perf:
,test:
, etc. - footers other than
BREAKING CHANGE: <description>
may be provided and follow a convention similar to git trailer format.
Commit message with description and breaking change footer
feat: allow provided config object to extend other configs
BREAKING CHANGE: `extends` key in config file is now used for extending other config files
Commit message with ! to draw attention to breaking change
feat!: send an email to the customer when a product is shipped
Commit message with scope and ! to draw attention to breaking change
feat(api)!: send an email to the customer when a product is shipped
Commit message with both ! and BREAKING CHANGE footer
chore!: drop support for Node 6
BREAKING CHANGE: use JavaScript features not available in Node 6.
Commit message with no body
docs: correct spelling of CHANGELOG
Commit message with scope
feat(lang): add Polish language
Commit message with multi-paragraph body and multiple footers
fix: prevent racing of requests
Introduce a request id and a reference to latest request. Dismiss
incoming responses other than from latest request.
Remove timeouts which were used to mitigate the racing issue but are
obsolete now.
Reviewed-by: Z
Refs: #123
The pyCoilGen release procedure is documented in the Release Procedure.