Repository navigation
Make Franco pip-installable and publish releases to PyPI (0.5.0) - #24
Merged
Merged
Conversation
Franco assumed a source checkout: config, prompts, skills and data were all resolved next to the package, so a PyPI install would have lacked its prompts and written the contacts database into site-packages. - franco/paths.py: a home folder ($FRANCO_HOME, else the checkout, else the current folder when it has franco.yaml, else ~/.franco); resource() reads the home's copy first and the bundled one otherwise. Clones and the Docker image keep today's layout. - setup.py: build_py bundles prompts/, skills/, franco.yaml and .env.example into franco/_bundled from the top-level files (explicit allowlist; never product_knowledge.md / competitive_intel.md). MANIFEST.in ships them in the sdist. - franco init [DIR]: home folder with franco.yaml, private .env, editable prompts and skills, data/ and a protective .gitignore; never overwrites. - franco install skips pip outside a checkout; train creates skills/; the dashboard's venv check accepts any virtualenv and passes FRANCO_HOME to the process it starts. - release.yml: PyPI job (trusted publishing, PEP 740 attestations) between build and the GitHub Release; 'pypi' environment limited to v* tags. - Tests: home resolution, bundled fallback, init, install; the installed-wheel test now builds exactly what the sdist ships and checks a franco init home end to end, including that site-packages is untouched. - README, CONTRIBUTING, CLAUDE.md, CHANGELOG; version 0.5.0.
|
|
||
|
|
||
| def test_install_outside_a_checkout_only_fetches_the_browser(monkeypatch): | ||
| import franco.cli as cli |
| import sys | ||
| from pathlib import Path | ||
|
|
||
| import pytest |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Franco assumed a source checkout: config, prompts, skills and data were all
resolved next to the package, so a PyPI install would have lacked its
prompts and written the contacts database into site-packages.
current folder when it has franco.yaml, else ~/.franco); resource() reads
the home's copy first and the bundled one otherwise. Clones and the
Docker image keep today's layout.
into franco/_bundled from the top-level files (explicit allowlist; never
product_knowledge.md / competitive_intel.md). MANIFEST.in ships them in
the sdist.
prompts and skills, data/ and a protective .gitignore; never overwrites.
dashboard's venv check accepts any virtualenv and passes FRANCO_HOME to
the process it starts.
build and the GitHub Release; 'pypi' environment limited to v* tags.
installed-wheel test now builds exactly what the sdist ships and checks a
franco init home end to end, including that site-packages is untouched.