Developers¶
The tagmaps python package is research software. Maintenance usually happens in chunks, whenever I have time.
You can contribute feedback, submit issues for bugs etc. on Github or Gitlab.
Importing tagmaps as a package¶
It is possible to import tagmaps as a package:
from tagmaps import TagMaps
from tagmaps import EMOJI, TAGS, LOCATIONS, TOPICS
from tagmaps import LoadData
from tagmaps import BaseConfig
from tagmaps.classes.utils import Utils
Have a look at the Jupyter Lab examples.
Structure of the project¶
The project structure follows the src-layout.
The packaging is organized as described in the setuptools declarative config (pyproject.toml).
The version is maintained both as git tags and inside src/tagmaps/version.py
, with the latter as the single point of truth.
Tagmaps commit follow the Angular commit message conventions. For a good introduction, see Understanding Semantic Commit Messages Using Git and Angular.
Releases are made with python-semantic-release. At the moment, releases are triggered manually after certain progress is available. Preview release flow with:
semantic-release -v --noop version
twine upload dist/*
semantic-release -v --noop publish
Without --noop
, semantic-release will do the following:
- Update changelog file.
- Version project based on previous commits
- Push changes to git.
- Run build_command
(
python -m build
) and upload the distribution files to Pypi. - Run semantic-release changelog and post to Gitlab/Github.
- Attach the files created by build_command to the release.
To trigger a test build:
pip install -q build
python -m build
There is a separate conda-forge feedstock that prepares the conda-forge distribution of tagmaps.