Codync
A free, open-source 1:1 alternative to Grok Bot and Muse. Message Claude Code, Codex, Cursor and 40+ coding agents as persistent bots from your iPhone, Mac or Linux desktop. Group chats, threads, appr
Common functionalities which are used across a broad range of apps and other libs.
Translation pending
Developer toolsPythonGitHub @cokeSchlumpfOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
This library contains common functionalities which are used across a broad range of apps and other libs.
Taken from the repository README
Loading the full README.
Read the full README ↗Common functionalities which are used across a broad range of apps and other libs.
📖 Documentation: https://cokeschlumpf.github.io/lib--python-commons/
poetry install --all-extras --with docs
poetry run poe check # linting, type checks and tests (same as CI)
poetry run poe fix # auto-fix lint issues and format code
The documentation is built with MkDocs Material and
mkdocstrings. The API reference is generated from the docstrings in src/.
| Path | Purpose |
|---|---|
mkdocs.yml | Site configuration and navigation (nav) |
docs/index.md | Landing page including the module overview table |
docs/api/*.md | One page per module/package of the API reference |
.github/workflows/docs.yml | Builds and deploys the site to GitHub Pages on every push to main (shared workflow) |
poetry run poe docs # serve locally with live reload on http://127.0.0.1:8000
poetry run poe docs-build # strict build into site/ (same as CI)
The strict build also runs in the Check workflow on feature/ and fix/ branches, so a broken reference fails
the pipeline before it reaches main.
Releases are automated with release-please and based on Conventional Commits. See the changelog for all releases.
vX.Y.Z (e.g. v1.0.4), each with a GitHub Release.versions/<major> (e.g. versions/1) always point to the latest release of that major version.version in pyproject.toml and CHANGELOG.md (newest release on top) are updated automatically.PRs are squash-merged, so the PR title becomes the commit on main and decides the next version. The
PR Title check rejects titles that aren't conventional commits.
| PR title | Release | In changelog |
|---|---|---|
feat: … | minor (1.2.0 → 1.3.0) | Features |
fix: …, perf: …, deps: … | patch (1.2.0 → 1.2.1) | Bug Fixes, Performance Improvements, Dependencies |
feat!: … or a BREAKING CHANGE: … line in the PR description | major (1.2.0 → 2.0.0) | as above, marked as breaking |
docs: …, revert: … | patch | Documentation, Reverts |
ci:, chore:, test:, build:, style:, refactor: | none on their own | hidden |
main creates or updates a single Release PR (chore(main): release X.Y.Z). It contains the
version bump and the new changelog section and collects all changes since the last release.versions/<major>.The Release PR is regenerated on every push to main, so manual edits to it are overwritten. Make final edits right
before merging.
Optional LLM polish: if the repo secret OPENAI_API_KEY is set, the release notes of the Release PR get a
Highlights summary and reworded entries. Review it in the Release PR. Every entry and link is kept; if the output
doesn't pass validation or the API fails, the generated notes stay unchanged.
Force a version: add Release-As: 2.0.0 as the last line of a PR description before merging it.
Fix a wrongly titled PR after merging: edit the merged PR's description and add the corrected message; it's used the next time the Release PR is generated:
BEGIN_COMMIT_OVERRIDE
feat: the corrected commit message
END_COMMIT_OVERRIDE
The workflows in .github/workflows/ only call the shared, reusable workflows from
core--devops-workflows (@versions/1), which also documents
their inputs. The GitHub settings this repository needs (squash merging, workflow permissions, Pages, rulesets,
OPENAI_API_KEY) are listed in its
setup checklist.
New code does not show up in the documentation automatically. For every new public module or package:
Make it importable. Packages need an __init__.py (namespace packages can't be resolved by mkdocstrings).
For packages, export the public API via __all__ in __init__.py, since only exported names appear on the
package's page.
Create an API page in docs/api/, e.g. docs/api/my-module.md:
# My module
::: commons.my_module
Several modules can share a page by adding one ::: line each (see docs/api/jobs.md).
Add the page to nav in mkdocs.yml under API reference, in the section that fits best.
Add a row to the module table in docs/index.md.
Run poe docs-build and check the page with poe docs.
::: path in the corresponding docs/api/*.md page (or delete the page).nav in mkdocs.yml and the module table in docs/index.md.Args:,
Returns:, Raises:, Example:). Docstrings are rendered as Markdown.[`Files`][commons.storage.Files]. Don't use Sphinx roles such as :class:`Files` , they are rendered as
plain text.