# twined
A library to help digital twins and data services talk to one another. Read more at [twined.readthedocs.io](https://twined.readthedocs.io)
[![PyPI version](https://badge.fury.io/py/twined.svg)](https://badge.fury.io/py/twined)
[![Build Status](https://github.com/octue/twined/workflows/python-ci/badge.svg)](https://github.com/octue/twined)
[![codecov](https://codecov.io/gh/octue/twined/branch/main/graph/badge.svg)](https://codecov.io/gh/octue/twined)
[![Documentation Status](https://readthedocs.org/projects/twined/badge/?version=latest)](https://twined.readthedocs.io/en/latest/?badge=latest)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
[![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
## Developer notes
**Documentation for use of the library is [here](https://twined.readthedocs.io). You don't need to pay attention to the following unless you plan to develop Twined itself.**
### Contributing
- Please raise an issue on the board (or add your $0.02 to an existing issue) so the maintainers know
what's happening and can advise / steer you.
- Create a fork of twined, undertake your changes on a new branch, named like *issue-84* or similar. To run tests and make commits,
you'll need to do something like:
```
git clone <your_forked_repo_address> # fetches the repo to your local machine
cd twined # move into the repo directory
pyenv virtualenv 3.6.9 twinedenv # Makes a virtual environment for you to install the dev tools into. Use any python >= 3.6
pyend activate twinedenv # Activates the virtual environment so you don't screw up other installations
pip install -r requirements-dev.txt # Installs the testing and code formatting utilities
pre-commit install # Installs the pre-commit code formatting hooks in the git repo
tox # Runs the tests with coverage. NB you can also just set up pycharm or vscode to run these.
```
- Adopt a Test Driven Development approach to implementing new features or fixing bugs.
- Ask the `twined` maintainers *where* to make your pull request. We'll create a version branch, according to the
roadmap, into which you can make your PR. We'll help review the changes and improve the PR.
- Once checks have passed, test coverage of the new code is >=95%, documentation is updated and the Review is passed, we'll merge into the version branch.
- Once all the roadmapped features for that version are done, we'll release.
### Release process
The process for creating a new release is as follows:
1. Check out a branch for your release, called eg `release/X.Y.Z`
2. Create a Pull Request into the `main` branch.
3. Undertake your changes in other branches according to the git flow and create pull requests into `release/X.Y.Z`
4. Ensure that documentation is updated to match changes, and increment the changelog. **Pull requests which do not update documentation will be refused.**
5. Ensure that test coverage is sufficient. **Pull requests that decrease test coverage will be refused.**
6. Ensure code meets style guidelines (pre-commit scripts and flake8 tests will fail otherwise)
7. Address Review Comments on the PR
8. Ensure the version in `setup.py` is correct and matches the branch version.
9. Merge to main. Successful test, doc build, flake8 and a new version number will automatically create the release on pypi.
10. Confirm the successful release on pypi
10. Go to code > releases and create a new release on GitHub at the same SHA.
Raw data
{
"_id": null,
"home_page": "https://www.github.com/octue/twined",
"name": "twined",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": "digital, twins, data, services, python, schema",
"author": "Octue (github: octue)",
"author_email": "support@octue.com",
"download_url": "https://files.pythonhosted.org/packages/05/39/3e73b2edd979d21490bf609c8d8616d89666c6c9dc322fce271b18fbfce0/twined-0.6.0.tar.gz",
"platform": null,
"description": "# twined\n\nA library to help digital twins and data services talk to one another. Read more at [twined.readthedocs.io](https://twined.readthedocs.io)\n\n[![PyPI version](https://badge.fury.io/py/twined.svg)](https://badge.fury.io/py/twined)\n[![Build Status](https://github.com/octue/twined/workflows/python-ci/badge.svg)](https://github.com/octue/twined)\n[![codecov](https://codecov.io/gh/octue/twined/branch/main/graph/badge.svg)](https://codecov.io/gh/octue/twined)\n[![Documentation Status](https://readthedocs.org/projects/twined/badge/?version=latest)](https://twined.readthedocs.io/en/latest/?badge=latest)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n\n## Developer notes\n\n**Documentation for use of the library is [here](https://twined.readthedocs.io). You don't need to pay attention to the following unless you plan to develop Twined itself.**\n\n### Contributing\n\n- Please raise an issue on the board (or add your $0.02 to an existing issue) so the maintainers know\nwhat's happening and can advise / steer you.\n\n- Create a fork of twined, undertake your changes on a new branch, named like *issue-84* or similar. To run tests and make commits,\nyou'll need to do something like:\n```\ngit clone <your_forked_repo_address> # fetches the repo to your local machine\ncd twined # move into the repo directory\npyenv virtualenv 3.6.9 twinedenv # Makes a virtual environment for you to install the dev tools into. Use any python >= 3.6\npyend activate twinedenv # Activates the virtual environment so you don't screw up other installations\npip install -r requirements-dev.txt # Installs the testing and code formatting utilities\npre-commit install # Installs the pre-commit code formatting hooks in the git repo\ntox # Runs the tests with coverage. NB you can also just set up pycharm or vscode to run these.\n```\n\n- Adopt a Test Driven Development approach to implementing new features or fixing bugs.\n\n- Ask the `twined` maintainers *where* to make your pull request. We'll create a version branch, according to the\nroadmap, into which you can make your PR. We'll help review the changes and improve the PR.\n\n- Once checks have passed, test coverage of the new code is >=95%, documentation is updated and the Review is passed, we'll merge into the version branch.\n\n- Once all the roadmapped features for that version are done, we'll release.\n\n\n### Release process\n\nThe process for creating a new release is as follows:\n\n1. Check out a branch for your release, called eg `release/X.Y.Z`\n2. Create a Pull Request into the `main` branch.\n3. Undertake your changes in other branches according to the git flow and create pull requests into `release/X.Y.Z`\n4. Ensure that documentation is updated to match changes, and increment the changelog. **Pull requests which do not update documentation will be refused.**\n5. Ensure that test coverage is sufficient. **Pull requests that decrease test coverage will be refused.**\n6. Ensure code meets style guidelines (pre-commit scripts and flake8 tests will fail otherwise)\n7. Address Review Comments on the PR\n8. Ensure the version in `setup.py` is correct and matches the branch version.\n9. Merge to main. Successful test, doc build, flake8 and a new version number will automatically create the release on pypi.\n10. Confirm the successful release on pypi\n10. Go to code > releases and create a new release on GitHub at the same SHA.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A library to help digital twins and data services talk to one another.",
"version": "0.6.0",
"project_urls": {
"Homepage": "https://www.github.com/octue/twined",
"Repository": "https://www.github.com/octue/twined"
},
"split_keywords": [
"digital",
" twins",
" data",
" services",
" python",
" schema"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0e3f43aa86e5e6a24f23ec02d8c67a81aa57f8db61550ad3d883062eebcd9b4a",
"md5": "3450db525a5e8713e7266ca85e561b54",
"sha256": "5f9d29c02bdeae7bb7ead80aafc1c650eb642fc864375fab529045ed53067aa1"
},
"downloads": -1,
"filename": "twined-0.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3450db525a5e8713e7266ca85e561b54",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 358694,
"upload_time": "2024-12-13T15:31:34",
"upload_time_iso_8601": "2024-12-13T15:31:34.688839Z",
"url": "https://files.pythonhosted.org/packages/0e/3f/43aa86e5e6a24f23ec02d8c67a81aa57f8db61550ad3d883062eebcd9b4a/twined-0.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "05393e73b2edd979d21490bf609c8d8616d89666c6c9dc322fce271b18fbfce0",
"md5": "9df46bc20859c258ae5bee882197ba47",
"sha256": "d7709a760f14f29946651a3a69abc28ae312f865cbe7d937d0afc427de34664a"
},
"downloads": -1,
"filename": "twined-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "9df46bc20859c258ae5bee882197ba47",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 355670,
"upload_time": "2024-12-13T15:31:37",
"upload_time_iso_8601": "2024-12-13T15:31:37.167143Z",
"url": "https://files.pythonhosted.org/packages/05/39/3e73b2edd979d21490bf609c8d8616d89666c6c9dc322fce271b18fbfce0/twined-0.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-13 15:31:37",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "octue",
"github_project": "twined",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "twined"
}