Release and hosting

Package boundary

The distribution is shareofsearch and the import namespace remains src. Version 4.0.0 is a release candidate. The repository is private and the licence is proprietary. Prepare authorised wheels and source distributions for a private GitHub release. Do not upload them to PyPI without a separate publication decision.

This candidate removes previously ignored configuration fields and strengthens input checks. Old YAML files need the changes listed in the configuration guide.

Local verification

From the repository root, use a dedicated environment:

python -m pip install -e '.[dev]'
ruff check src tests scripts runme.py
ruff format --check src tests scripts runme.py
mypy --config-file pyproject.toml
pytest
python scripts/verify_package.py

The package verifier builds a wheel and source distribution, checks their file boundaries and licence metadata, installs each into a temporary environment and runs CLI and offline metric smoke checks outside the checkout. Its temporary environments reuse the current environment’s scientific dependencies. It does not claim a clean dependency-resolution matrix or contact paid providers.

Keep test results, package hashes and the exact Git commit with the release. Mocked provider tests establish request/error handling, not live provider access. Descriptive formula tests do not establish causal validity or empirical calibration. Use a manual release process; no CI or publication automation is configured here.

Static documentation

The canonical pages are in docs/. docs-site/ uses the Griffin Docsy build pattern also used by AMMM3 and GeoSC. It targets https://sos.docs.griffin-mmm.com/. Build locally:

cd docs-site
npm ci --ignore-scripts
npm run build
npm run check
npm run preview

The site build needs Node.js 22 or later and Python 3.11 or later. The library’s Python requirement is separate. The first build downloads the pinned Hugo binary. The generated archive is docs-site/dist/griffin-sos-docs.zip from the repository root. It includes local search and mathematical rendering assets.

Follow the cPanel upload instructions. Extract the archive contents into the configured subdomain document root. The archive has index.html at its top level. Back up the old deployment first and remove obsolete generated pages when updating. Keep host-managed settings.

The checker verifies local links, fragments, assets, code-fence preservation, rendered equations and search entries. It does not verify statistical claims or provider behaviour. Site upload is separate from package publication.

Repository hygiene

Credentials, outputs, caches, local planning, reference PDFs and generated site files are excluded from source control and package payloads. Existing local run outputs and reference papers were retained on disk when removed from the Git index. Historical Git objects remain unchanged; untracking is not history erasure.

The former requirements-lock.txt was an unrelated machine environment dump with local paths. It is removed. pyproject.toml owns dependencies and requirements.txt installs the current project. No lockfile is claimed.