Skip to content

feat!: rename to goodmem-camel / import goodmem_camel (0.4.0) - #4

Merged
bashareid merged 3 commits into
mainfrom
chore/rename-to-goodmem-camel-2026-09-29
Sep 29, 2026
Merged

bashareid merged 3 commits into
mainfrom
chore/rename-to-goodmem-camel-2026-09-29

Conversation

@bashareid

@bashareid bashareid commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator

Renames the package to goodmem-camel, imported as goodmem_camel, and bumps it to 0.4.0. This follows the convention of goodmem-adk (import goodmem_adk) and goodmem-wandb (import goodmem_wandb): the distribution is goodmem-<framework> and the import package is goodmem_<framework>. The package is published in the PAIR Systems PyPI organization (pairsysai).

What changes for users

  • Install: pip install goodmem-camel.
  • Breaking: imports change from camel_goodmem to goodmem_camel, for example from goodmem_camel import GoodMemToolkit, GoodMemRetriever, filters. There is no compatibility shim; we assume the package has no users yet.
  • The old distribution, camel-goodmem, stays at 0.3.0 on PyPI.
  • Nothing else changes. The tool names (goodmem_search, goodmem_remember, …), the MCP server name (GoodMemToolkit) and the request payloads are all the same.
  • Loggers are created with get_logger(__name__), so they are now camel.goodmem_camel.* instead of camel.camel_goodmem.*.

Changes

  • git mv camel_goodmem goodmem_camel. Every reference to the old name was updated:
    • imports in the package, tests and example;
    • Sphinx cross-references;
    • the filters error message;
    • the README code samples;
    • the ci.yml targets: ruff, mypy, the clean-venv and floors import checks, and the TLS gate's find path.
  • pyproject.toml:
    • name = "goodmem-camel" and version = "0.4.0".
    • There is no [tool.flit.module] block. flit's default module name (derived from the distribution name) is now goodmem_camel, which matches.
  • publish.yml: the environment URL is https://pypi.org/project/goodmem-camel/, and the setup comment names the real pending-publisher values.
  • README.md: the title, install line and code samples use only the new names, and there is one Changes in 0.4.0 entry.
  • examples/example_usage.py: the space names are now goodmem-camel-example*.
  • CAMEL registration checked: CAMEL's @MCPServer() decorator names the FastMCP server after cls.__name__ and never uses the module path. After the rename, GoodMemToolkit.__module__ is goodmem_camel.toolkit, tk.mcp.name is GoodMemToolkit, and the MCP tools are ['goodmem_remember', 'goodmem_search'].
  • Kept on purpose: no data stored on the GoodMem server uses the module name. Metadata keys and space and memory payloads are unchanged.

Before merging

This repo is tag-only. There is no release-on-merge.yml, so merging does not publish. publish.yml publishes when a v* tag is pushed. After merge, publishing happens when v0.4.0 is tagged on the merge commit. That tag does not exist yet; v0.3.0 does.

Before that tag is pushed, the pending trusted publisher for goodmem-camel must exist on PyPI in the pairsysai org. Otherwise the publish job fails at the upload step. Enter these values, taken from this repo:

Field Value
PyPI project name goodmem-camel
Owner PAIR-Systems-Inc
Repository name goodmem_camel
Workflow name publish.yml
Environment name pypi

The GitHub environment pypi has a single deployment policy, v* (type: tag), so v0.4.0 is allowed to deploy.

What failed before, and how it behaves now

Before (the published camel-goodmem 0.3.0 / origin/main):

$ pip install camel-goodmem==0.3.0
$ python -c "import goodmem_camel"
ModuleNotFoundError: No module named 'goodmem_camel'
$ pip install goodmem-camel
ERROR: No matching distribution found for goodmem-camel

After (this branch):

$ python -m build
Successfully built goodmem_camel-0.4.0.tar.gz and goodmem_camel-0.4.0-py3-none-any.whl
$ unzip -Z1 dist/*.whl
goodmem_camel/__init__.py  goodmem_camel/_filters.py  goodmem_camel/_ids.py
goodmem_camel/_results.py  goodmem_camel/_uploads.py  goodmem_camel/filters.py
goodmem_camel/py.typed     goodmem_camel/retriever.py goodmem_camel/toolkit.py
goodmem_camel-0.4.0.dist-info/{licenses/LICENSE,WHEEL,METADATA,RECORD}
$ unzip -p dist/*.whl '*/METADATA' | grep -E '^(Name|Version):'
Name: goodmem-camel
Version: 0.4.0
$ twine check dist/*          # both PASSED
$ python -m venv clean && clean/bin/pip install dist/*.whl
$ clean/bin/python -c "import goodmem_camel; print(goodmem_camel.__version__)"
0.4.0
$ clean/bin/python -c "import camel_goodmem"
ModuleNotFoundError: No module named 'camel_goodmem'

pip install goodmem-camel will resolve once v0.4.0 has been published.

I also ran every workflow run: block locally. Each was extracted from the YAML and passed bash -n before running.

Job Result
ci.yml / test on 3.10, 3.11, 3.12, 3.13 ruff check and format, mypy (8 files) clean, 517 offline tests passed, all 35 live tests skipped without credentials, clean-venv import printed 0.4.0
ci.yml / floors on 3.10 camel-ai 0.2.79, goodmem 0.1.35, pydantic 2.11.0, mcp 1.3.0; the import printed 0.4.0; 517 tests passed
ci.yml / gates passed
publish.yml / build built, and twine check passed

A key scan of the added lines found nothing.

Where the old names still appear

A search of every tracked file for camel_goodmem and camel-goodmem (case and separator variants) finds one line: the README Changes in 0.4.0 entry, "update imports from camel_goodmem to goodmem_camel". It is history and is kept on purpose.

🤖 Generated with Claude Code

bashareid and others added 3 commits September 29, 2026 21:42
…l_goodmem

The distribution moves from `camel-goodmem` to `goodmem-camel` so it can
be published from the PAIR Systems organization on PyPI; the old name's
only owner is a personal account that cannot be reached. `camel-goodmem`
stays at 0.3.0. The import package is unchanged.

- pyproject: name = "goodmem-camel", version 0.3.1, and
  [tool.flit.module] name = "camel_goodmem" -- without it flit derives
  the module from the new name and the build fails with "No file/folder
  found for module goodmem_camel".
- camel_goodmem.__version__ = "0.3.1".
- publish.yml: environment url is pypi.org/project/goodmem-camel/; the
  setup comment names the real pending-publisher values.
- README: title, install line, a rename note near the top, and a
  "Changes in 0.3.1" table.
- examples: space names follow the new name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both distributions ship the same `camel_goodmem` package. Measured: with
camel-goodmem 0.3.0 and goodmem-camel 0.3.1 installed together, `pip
uninstall camel-goodmem` deletes camel_goodmem while goodmem-camel 0.3.1
is still listed, and `import camel_goodmem` raises ModuleNotFoundError.
`pip uninstall -y camel-goodmem && pip install goodmem-camel` imports
0.3.1. The rename note, the install section and the 0.3.1 changes say so.

The 0.3.1 entry now gives the reason as the move into the PAIR Systems
PyPI organization under the goodmem-<framework> naming used by
goodmem-adk and goodmem-semantic-kernel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Follows the goodmem-<framework> / goodmem_<framework> convention of
goodmem-adk and goodmem-wandb: distribution `goodmem-camel`, import
package `goodmem_camel`. Breaking: `import camel_goodmem` becomes
`import goodmem_camel`. No compatibility shim.

- git mv camel_goodmem -> goodmem_camel; every import, Sphinx cross-ref,
  error message, test, example, CI target (ruff/mypy/import checks, the
  TLS gate's find path) and README sample follows.
- pyproject: drop the [tool.flit.module] block -- flit's default module
  name now matches the distribution; version 0.4.0 (v0.4.0 does not
  exist; v0.3.0 does).
- README: drop the "previously published as" / uninstall notes; one
  "Changes in 0.4.0" entry states the rename and the breaking import.
- Loggers are get_logger(__name__), so they become camel.goodmem_camel.*
  with no code change. CAMEL's @MCPSERVER names the server after the
  class (GoodMemToolkit), not the module, so it is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bashareid bashareid changed the title chore(packaging): publish as goodmem-camel 0.3.1 (import stays camel_goodmem) feat!: rename to goodmem-camel / import goodmem_camel (0.4.0) Sep 29, 2026
@bashareid
bashareid merged commit 22ed57b into main Sep 29, 2026
8 checks passed
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