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:

  1. Update changelog file.
  2. Version project based on previous commits
  3. Push changes to git.
  4. Run build_command (python -m build) and upload the distribution files to Pypi.
  5. Run semantic-release changelog and post to Gitlab/Github.
  6. 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.