lincc-frameworks / lincc-frameworks/python-project-template
Adopt the template for applications
Nobody has claimed this yet.
- Dominant language
- Jinja
- Stars
- 85
- Forks
- 16
- Avg merge
- 6h 18m
- Merged PRs (30d)
- 1
Description
Currently, the template is really focused on libraries, not on end-user software, such as ML or data analysis pipelines, web portals, scripts, etc. Researchers are more frequently starting a new end-user project than a library.
There are usually different expectations from end-user software than from a library: the environment should be reproducible, e.g., require some sort of a lock file; package data setup may be required; Dockerfile or entry points usually should be set up. I think the next "big thing" for PPT may be support for projects like that, while we can use in-house end-user projects to test it, e.g., hyrax (which, of course, is a library, but also a user-level script), hats-import scripts, "cone search v2.0", and individual team members' projects (I'd be happy to test it with uncle-val).
I propose to use `uv` for the lock file and tooling support, which makes it easy to manage virtual environments and gives a consistent way of running Python tools and commands via, e.g., `uv run pytest` and `uv run python -m my-module`.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by examining the current library-focused template and the end-user workflows named in the issue, including hyrax and hats-import. Assess how uv-managed lock files, reproducible environments, package data setup, Dockerfile support, and entry points should fit; done means an agreed template design for these application projects.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100