# 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": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "digital,twins,data,services,python,schema",
"author": "Octue (github: octue)",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/7d/05/2c66513096c7bbd393d73e55cfb129ae6455a73b9dfd7eb356fa3fa568a1/twined-0.5.3.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",
"bugtrack_url": null,
"license": "MIT",
"summary": "A library to help digital twins and data services talk to one another",
"version": "0.5.3",
"project_urls": {
"Homepage": "https://www.github.com/octue/twined"
},
"split_keywords": [
"digital",
"twins",
"data",
"services",
"python",
"schema"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d8e7fce171deeb54febea17edec5a3ccc1f375e3410527078357c037b1343a08",
"md5": "880a358554aca577cfa6f4907a6f8d2e",
"sha256": "ca3b9fc49cd1a402b997e7ba24a1e369ffed20854cc8965050d9c388f581a472"
},
"downloads": -1,
"filename": "twined-0.5.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "880a358554aca577cfa6f4907a6f8d2e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 359908,
"upload_time": "2023-10-19T16:17:51",
"upload_time_iso_8601": "2023-10-19T16:17:51.060300Z",
"url": "https://files.pythonhosted.org/packages/d8/e7/fce171deeb54febea17edec5a3ccc1f375e3410527078357c037b1343a08/twined-0.5.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7d052c66513096c7bbd393d73e55cfb129ae6455a73b9dfd7eb356fa3fa568a1",
"md5": "9d85ef9d11b85e01a82d4c802b47948e",
"sha256": "326b170c5ceeb60db09e93cf5a223b964a3e7d8bed96ccbb31363a988acc38f3"
},
"downloads": -1,
"filename": "twined-0.5.3.tar.gz",
"has_sig": false,
"md5_digest": "9d85ef9d11b85e01a82d4c802b47948e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 363626,
"upload_time": "2023-10-19T16:17:52",
"upload_time_iso_8601": "2023-10-19T16:17:52.496416Z",
"url": "https://files.pythonhosted.org/packages/7d/05/2c66513096c7bbd393d73e55cfb129ae6455a73b9dfd7eb356fa3fa568a1/twined-0.5.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-19 16:17:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "octue",
"github_project": "twined",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"tox": true,
"lcname": "twined"
}