{"id":41435642,"url":"https://github.com/ecmwf-projects/cookiecutter-conda-package","last_synced_at":"2026-04-07T11:01:34.756Z","repository":{"id":36952331,"uuid":"500793801","full_name":"ecmwf-projects/cookiecutter-conda-package","owner":"ecmwf-projects","description":"Template for Python package based on Conda","archived":false,"fork":false,"pushed_at":"2026-04-07T07:47:46.000Z","size":520,"stargazers_count":18,"open_issues_count":1,"forks_count":10,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-07T09:31:04.894Z","etag":null,"topics":["cads"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ecmwf-projects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-07T10:31:03.000Z","updated_at":"2026-04-07T07:47:51.000Z","dependencies_parsed_at":"2023-02-19T06:15:47.676Z","dependency_job_id":"44900b0f-536c-4079-8c6c-f4ffd5b32532","html_url":"https://github.com/ecmwf-projects/cookiecutter-conda-package","commit_stats":{"total_commits":287,"total_committers":6,"mean_commits":"47.833333333333336","dds":0.3066202090592335,"last_synced_commit":"d7af7236036e91f530260569aa5b232ed4ffbdd2"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/ecmwf-projects/cookiecutter-conda-package","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fcookiecutter-conda-package","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fcookiecutter-conda-package/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fcookiecutter-conda-package/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fcookiecutter-conda-package/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecmwf-projects","download_url":"https://codeload.github.com/ecmwf-projects/cookiecutter-conda-package/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fcookiecutter-conda-package/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31509941,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cads"],"created_at":"2026-01-23T14:37:28.307Z","updated_at":"2026-04-07T11:01:34.738Z","avatar_url":"https://github.com/ecmwf-projects.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cookiecutter-conda-package\n\nTemplate for Python packages based on Conda.\n\nThis package is developed to ease development of ECMWF packages, but it is intended to\nbe more generic.\n\n## Features\n\nAlpha stage:\n\n- pre-commit hooks\n  - various linters\n  - ruff\n- version with setuptools-scm-git\n- copyright + Apache v2.0 license\n- GitHub Actions\n  - unit-tests (py3.12)\n  - pre-commit\n  - integration-tests\n  - build documentation\n  - static type check\n  - build package \u0026 publish on PyPI\n- Makefile\n- gitignore\n- make Docker image\n- auto template update via cruft\n- add documentation skeleton (with sphinx / myst)\n\nPlanned:\n\n- keep environment files up-to-date\n\n## Usage\n\nFor best experience create a new conda environment (e.g. DEVELOP) with Python 3.12,\ncruft and make, then create the package:\n\n```\nconda create -n DEVELOP -c conda-forge python=3.12 cruft make\nconda activate DEVELOP\ncruft create https://github.com/ecmwf-projects/cookiecutter-conda-package\n```\n\nanswer the configuration questions or accept the defaults when in doubt.\n\nCreate the git repo and add the pre-commit git hooks:\n\n```\ngit init\ngit add .\ngit commit -m \"Initial commit of the package boilerplate\"\n```\n\nAttach an empty remote repository and push the skeleton package:\n\n```\ngit branch -M main\ngit remote add origin git@github.com:ORGANISATION/PROJECT_NAME.git\ngit push --set-upstream origin main\n```\n\nTo setup the package and its dependecies run:\n\n```\nmake conda-env-update\nconda activate DEVELOP\npre-commit install\npip install -e . --no-deps\n```\n\nFinally to run pre-commit, pytest, and mypy on the newly created package run:\n\n```\nmake\n```\n\nTo update the boilerplate to the latest template execute:\n\n```\nmake template-update\n```\n\n## License\n\n```\nCopyright 2022, European Union.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecmwf-projects%2Fcookiecutter-conda-package","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fecmwf-projects%2Fcookiecutter-conda-package","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecmwf-projects%2Fcookiecutter-conda-package/lists"}