Skip to content

Open source: rename to oswatcher-plugins, add PyPI publish - #10

Merged
Wenzel merged 5 commits into
masterfrom
open-source-pypi-publish
Jun 10, 2026
Merged

Wenzel merged 5 commits into
masterfrom
open-source-pypi-publish

Conversation

@Wenzel

@Wenzel Wenzel commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Renames PyPI package from plugins → oswatcher-plugins (v0.14.0)
  • License changed from private to Apache-2.0
  • Switches neogit dependency from private git+tag to PyPI ^0.16.0
  • Adds GitHub Actions CI: dev checks (fmt, lint, typing) + unit tests across Python 3.11/3.12
  • Adds PyPI publish job triggered on v* tags, followed by automatic GitHub Release creation

Notes

  • Python module import name stays plugins (distribution name ≠ import name is intentional for now; module rename can be a follow-up)
  • Integration tests are excluded from CI — they require a live Neo4j instance
  • A PYPI_API_TOKEN secret must be set in the pypi GitHub environment before the first tag push

First publish

# bump version in pyproject.toml if needed, then:
git tag v0.14.0
git push origin v0.14.0

🤖 Generated with Claude Code

Wenzel and others added 5 commits June 10, 2026 14:41
- Rename package from 'plugins' to 'oswatcher-plugins' (v0.14.0)
- License changed from private to Apache-2.0
- Switch neogit dependency from git+tag to PyPI ^0.16.0
- Add GitHub Actions CI (dev checks + unit tests) with PyPI publish
  triggered on v* tags and GitHub release creation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Apache 2.0 LICENSE file
- Rewrite README for public audience (installation, plugin table, usage)
- Replace hardcoded /home/wenzel/ paths in docs with relative/repo links
- Rename appdirs cache dir from grapheos-plugins to oswatcher-plugins

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Poetry can't auto-discover the package because the distribution name
(oswatcher-plugins) doesn't match the directory name (plugins/).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add ignore_missing_imports overrides for untyped dependencies
  (neogit, dynaconf, ipdb, lief, regipy, pypeln, volatility3)
- Add # type: ignore[call-arg] at MerkleNode subclass instantiation sites;
  false positives from mypy's inability to propagate attrs fields through
  untyped base classes
- Fix var-annotated: parameters/children unannotated list/dict literals
- Fix _repository type: Optional[SymbolsRepository] (was missing Optional)
- Fix lief.List -> list[UniqueConstraint] (lief.List not defined in stubs)
- Fix stage_process_pdb return type: Tuple[str, Path] -> Tuple[str, str, Path]
- Fix arg-type: DataTypeNode(data_type=...) where subtype can be None

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Wenzel
Wenzel merged commit 2e6d887 into master Jun 10, 2026
7 checks passed
@Wenzel
Wenzel deleted the open-source-pypi-publish branch June 10, 2026 13:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant