Metadata-Version: 2.4
Name: seamm-cookiecutter
Version: 2026.9.18
Summary: Cookiecutter for SEAMM plug-ins, substeps and forcefields
Home-page: https://github.com/molssi-seamm/cookiecutter-seamm-plugin
Author: Paul Saxe
Author-email: psaxe@molssi.org
License: BSD
Keywords: cookiecutter,template,package,SEAMM,MolSSI
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development
Description-Content-Type: text/x-rst
License-File: LICENSE
License-File: AUTHORS.rst
Requires-Dist: cookiecutter
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: summary

.. image:: https://img.shields.io/github/issues-pr-raw/molssi-seamm/seamm-cookiecutter
   :target: https://github.com/molssi-seamm/seamm-cookiecutter/pulls
   :alt: GitHub pull requests

.. image:: https://github.com/molssi-seamm/seamm-cookiecutter/workflows/CI/badge.svg
   :target: https://github.com/molssi-seamm/seamm-cookiecutter/actions
   :alt: Build Status

.. image:: https://codecov.io/gh/molssi-seamm/seamm-cookiecutter/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/molssi-seamm/seamm-cookiecutter
   :alt: Code Coverage

.. image:: https://github.com/molssi-seamm/seamm-cookiecutter/workflows/CodeQL/badge.svg
   :target: https://github.com/molssi-seamm/seamm-cookiecutter/security/code-scanning
   :alt: Code Quality

.. image:: https://github.com/molssi-seamm/seamm-cookiecutter/workflows/Release/badge.svg
   :target: https://molssi-seamm.github.io/seamm-cookiecutter/index.html
   :alt: Documentation Status

.. image:: https://img.shields.io/pypi/v/seamm-cookiecutter.svg
   :target: https://pypi.python.org/pypi/seamm-cookiecutter
   :alt: PyPi VERSION

==============================
Cookiecutter for SEAMM Plugins
==============================
Cookiecutter_ template for a SEAMM plugin.

* GitHub repo: https://github.com/molssi-seamm/cookiecutter-seamm-plugin
* Free software: BSD license

Features
--------

* Testing setup with ``unittest`` and ``python setup.py test`` or ``py.test``
* CI/CD: Ready for Continuous Integration/Continuous Deployment using
  GitHub Actions.
* Sphinx_ docs: Documentation ready for generation with, for example, ReadTheDocs_
* Auto-release to PyPI_ when you push a new tag to master (optional)

.. _Cookiecutter: https://github.com/audreyr/cookiecutter

Quickstart
----------

Install the SEAMM Cookiecutter if you haven't installed it yet (this requires
Cookiecutter 1.4.0 or higher)::

    pip install -U seamm-cookiecutter

Generate a Python package project::

    seamm-cookiecutter

And answer the prompts about your plug-in, etc. Then change to the new
directory::
   
   cd <plug-in name>

Then create repository in GitHub with exactly the same name, just
giving the LICENSE type. Note that GitHub has changed the default
branch to `main`, which is what the SEAMM cookiecutter also uses. Now
you need to merge the two:: 

   bash-3.2$ git remote add origin
   git@github.com:<organization>/<plug-in name> .git
   bash-3.2$ git pull --allow-unrelated-histories origin master
   warning: no common commits
   remote: Counting objects: 3, done.        
   remote: Compressing objects: 100% (2/2), done.        
   remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0        
   Unpacking objects: 100% (3/3), done.
   From github.com:<organization>/<plug-in name>
    * branch            main     -> FETCH_HEAD
    * [new branch]      main     -> origin/main
   error: Terminal is dumb, but EDITOR unset
   Not committing merge; use 'git commit' to complete the merge.

Depending on what happens here, you may have a conflict in LICENSE. If
so, edit the file and fix the problem by keeping the appropriate lines.

Once that is done, push to GitHub::

   bash-3.2$ git push --set-upstream origin main
   Counting objects: 54, done.
   Delta compression using up to 4 threads.
   Compressing objects: 100% (48/48), done.
   Writing objects: 100% (54/54), 20.43 KiB | 261.00 KiB/s, done.
   Total 54 (delta 10), reused 0 (delta 0)
   remote: Resolving deltas: 100% (10/10), completed with 1 local object.        
   To github.com:<organization>/<plug-in name>.git
      30251d7..e2761fc  main -> main
   Branch main set up to track remote branch main from origin.
   bash-3.2$ 

Deploy to PyPi. Once the code is in reasonable shape and working, you
can deploy to PyPi so that users can `pip install` it. You need an
account at PyPi_. 

.. _packaging guide: https://packaging.python.org/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
.. _Sphinx: http://sphinx-doc.org/
.. _ReadTheDocs: https://readthedocs.io/
.. _`pyup.io`: https://pyup.io/
.. _PyPi: https://pypi.python.org/pypi


=======
History
=======
2026.9.18 -- CI environment template takes pure-Python dependencies from PyPI
    * The generated ``devtools/conda-envs/test_env.yaml`` lists the SEAMM packages
      (and other pure-Python dependencies) in its ``pip:`` section and keeps only the
      compiled packages -- numpy, openbabel, rdkit -- in the conda section, so a
      plug-in's CI sees a new SEAMM release within minutes rather than waiting hours
      for conda-forge to build and propagate.
    * The generated Makefile has a ``make update`` target for the post-release
      main/dev sync, matching the other plug-ins.


2021.2.17 (17 February 2021)
----------------------------

* Initial working version on PyPi.
