# Flywheel Gear Toolkit
**flywheel-gear-toolkit** is a library that provides tooling for developing Flywheel gears.
## Installation
```
pip install flywheel-gear-toolkit
```
## Documentation
The documentation for the **flywheel-gear-toolkit** can be found
[here](https://flywheel-io.gitlab.io/public/gear-toolkit/index.html).
## Contributing
### Building
The dependency and virtual environment manager for the gear toolkit is [poetry](https://python-poetry.org/).
```
poetry install
```
or
```
poetry install -E all
```
to install with extras.
### Testing, Linting, Building doc
Linting, Testing and Documentation building are all done using `pre-commit`.
After installing poetry, the `pre-commit` command will be installed. Make sure pre-commit hooks are installed by running either `poetry run pre-commit install` or from within the poetry shell `pre-commit install`. After hooks are installed, they will automatically be run on each `git commit`, they can all be skipped by running `git commit --no-verify` or specific hooks can be skipped by setting the enviromental variable, ex. `SKIP=test:pre-commit:pytest git commit`.
Individual hooks can also be run independently. For example, to build sphinx-doc, you can run `pre-commit run publish:doc:test`, or to run black on all files: `pre-commit run test:flywheel-lint -a`. For a list of all hooks, view the [pre-commit-config](./.pre-commit-config.yaml).
### Managing dependencies
To add new dependencies to this repo, please use [poetry](https://python-poetry.org/)
and to follow the below steps:
```
# Install my-package:
poetry add my-package
# or install my-package as part of the required packages for development (e.g. pytest):
poetry add my-package --dev
# Sync poetry.lock
poetry lock
```
### Building and releasing
#### Local building
To build the project locally and verify if the build was succesful, you can run
```
poetry build --format wheel
twine check dist/*.whl
```
#### Versioning and project information
The `pyproject.toml` file has replaced the usual `setup.py` in this repository and contains information on contributers, maintainers, project description, project URLs, and project version. In order to change any information on the project, it must be changed in the `pyproject.toml`, file. Documentation for this file can be found [here](https://python-poetry.org/docs/pyproject/), and information on dependency version specification syntax can be found [here](https://python-poetry.org/docs/dependency-specification/)
#### CI for tagging and releasing
There is CI in place to help with tagging and releasing versions and hotfixes of the flywheel-gear-toolkit.
##### Automatic tagging (Not yet enabled)
When a commit that contains the word 'release' is pushed to master or a branch beginning with 'hotfix-' and there are changes to the pyproject.toml file (such as version), gitlab CI will automatically checkout the fix/release, label the branch with the tag found in the current pyproject.toml version, and push the tags.
##### Automatic publishing
When tags are pushed, either manually or by the previous automatic tagging CI, the publish job wil be triggered which will automatically build the project wheel and push the version to PYPI.
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/flywheel-io/public/gear-toolkit",
"name": "flywheel-gear-toolkit",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": null,
"author": "Flywheel",
"author_email": "support@flywheel.io",
"download_url": null,
"platform": null,
"description": "# Flywheel Gear Toolkit\n\n**flywheel-gear-toolkit** is a library that provides tooling for developing Flywheel gears.\n\n## Installation\n\n```\npip install flywheel-gear-toolkit\n```\n\n## Documentation\n\nThe documentation for the **flywheel-gear-toolkit** can be found\n[here](https://flywheel-io.gitlab.io/public/gear-toolkit/index.html).\n\n## Contributing\n\n### Building\n\nThe dependency and virtual environment manager for the gear toolkit is [poetry](https://python-poetry.org/).\n\n```\npoetry install\n```\n\nor\n\n```\npoetry install -E all\n```\n\nto install with extras.\n\n### Testing, Linting, Building doc\n\nLinting, Testing and Documentation building are all done using `pre-commit`.\n\nAfter installing poetry, the `pre-commit` command will be installed. Make sure pre-commit hooks are installed by running either `poetry run pre-commit install` or from within the poetry shell `pre-commit install`. After hooks are installed, they will automatically be run on each `git commit`, they can all be skipped by running `git commit --no-verify` or specific hooks can be skipped by setting the enviromental variable, ex. `SKIP=test:pre-commit:pytest git commit`.\n\nIndividual hooks can also be run independently. For example, to build sphinx-doc, you can run `pre-commit run publish:doc:test`, or to run black on all files: `pre-commit run test:flywheel-lint -a`. For a list of all hooks, view the [pre-commit-config](./.pre-commit-config.yaml).\n\n### Managing dependencies\n\nTo add new dependencies to this repo, please use [poetry](https://python-poetry.org/)\nand to follow the below steps:\n\n```\n# Install my-package:\npoetry add my-package\n# or install my-package as part of the required packages for development (e.g. pytest):\npoetry add my-package --dev\n# Sync poetry.lock\npoetry lock\n```\n\n### Building and releasing\n\n#### Local building\n\nTo build the project locally and verify if the build was succesful, you can run\n\n```\npoetry build --format wheel\ntwine check dist/*.whl\n```\n\n#### Versioning and project information\n\nThe `pyproject.toml` file has replaced the usual `setup.py` in this repository and contains information on contributers, maintainers, project description, project URLs, and project version. In order to change any information on the project, it must be changed in the `pyproject.toml`, file. Documentation for this file can be found [here](https://python-poetry.org/docs/pyproject/), and information on dependency version specification syntax can be found [here](https://python-poetry.org/docs/dependency-specification/)\n\n#### CI for tagging and releasing\n\nThere is CI in place to help with tagging and releasing versions and hotfixes of the flywheel-gear-toolkit.\n\n##### Automatic tagging (Not yet enabled)\n\nWhen a commit that contains the word 'release' is pushed to master or a branch beginning with 'hotfix-' and there are changes to the pyproject.toml file (such as version), gitlab CI will automatically checkout the fix/release, label the branch with the tag found in the current pyproject.toml version, and push the tags.\n\n##### Automatic publishing\n\nWhen tags are pushed, either manually or by the previous automatic tagging CI, the publish job wil be triggered which will automatically build the project wheel and push the version to PYPI.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Tooling for developing Flywheel gears",
"version": "0.6.19",
"project_urls": {
"Documentation": "https://gear-toolkit.readthedocs.io/en/latest/",
"Homepage": "https://gitlab.com/flywheel-io/public/gear-toolkit",
"Repository": "https://gitlab.com/flywheel-io/public/gear-toolkit"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a8ceaa50d81eaed476f48dcb7927bb794c007b255e0dfcdbbbab8c095d465176",
"md5": "b31c58205c14c9d7a2f4258b59719ae5",
"sha256": "7fead4b6fb9d7fb51ddd8345321bd0a25dfc5bc5c93c54ec19d767bb5221159c"
},
"downloads": -1,
"filename": "flywheel_gear_toolkit-0.6.19-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b31c58205c14c9d7a2f4258b59719ae5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 65649,
"upload_time": "2024-10-03T19:48:15",
"upload_time_iso_8601": "2024-10-03T19:48:15.234963Z",
"url": "https://files.pythonhosted.org/packages/a8/ce/aa50d81eaed476f48dcb7927bb794c007b255e0dfcdbbbab8c095d465176/flywheel_gear_toolkit-0.6.19-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-03 19:48:15",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "flywheel-io",
"gitlab_project": "public",
"lcname": "flywheel-gear-toolkit"
}