Skip to content

This repository can be used for generating a number of project structures in a number of different languages.

License

Notifications You must be signed in to change notification settings

ferreteleco/cookie-templates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cookiecutter project for various languages and options

This repository can be used for generating a number of project structures in a number of different languages.

Version

Current version is 1.3.1 and was set according to Semantic Versioning.

Project's version should be updated, when applicable:

  • In this very file.

Usage

In order to start a new project, install Cookiecutter and run the following command:

$ cookiecutter https://github.com/ferreteleco/cookie-templates.git --directory="<dir-name>"

Where <dir-name> is one of the sub-folders of this repository (each one will hold a template for a different kind of project). Each available template can be seen in sub-sections below.

IMPORTANT! This will create the full structure for the project (including top level directory), so it is recommended that the project generation be invoked from outside vscode. The remote repository may be linked later by running the following commands (inside the top level directory of the project):

git init
git remote add origin <remote-repository-url>

NOTE: it can also be cloned using GIT over SSH, if properly configured in your account.

NOTE1: after the repository is downloaded, the template can be used again without downloading it again. In order to do so, simply specify template name as argument for cookiecutter:

$ cookiecutter com-cookiecutter-templates --directory="<dir-name>"

Cpp executable template (dir-name: cpp-exe)

A Cookiecutter template for Cpp projects (executable version).

Dependencies

As its base (currently configured in the template), this projects only depends on one external library:

{%- if cookiecutter.add_spdlog_utils == 'True' -%} An additional dependency may be added implicitly due to selected options during project creation:

Variables

Variables allow to customize your project. When running the previous command, you will be prompted to fill in the following values:

  • project_name: Name of the project. This variable will also be used to create the default value for the project slug.
  • project_slug: URL friendly name of the project. It is recommended to keep the default value.
  • project_short_description: Short description of the project.
  • version: Initial version of the project. If using a different value from the default, please follow Semantic Versioning recommendations.
  • cpp_standard: C++ standard to use for compilation. Available values are C++17 (default), C++14 and C++11.
  • full_name: Full name of the main maintainer of the project.
  • email: Contact email of the main maintainer of the project.
  • license: default license file for the project.
  • vscode_project: flag to control generation of .vscode folder, with default snippets (VSCode text editor config files).

Cpp library template (dir-name: cpp-lib)

A Cookiecutter template for Cpp projects (library version).

Dependencies

As its base (currently configured in the template), this projects only depends on one external library:

Variables

Variables allow to customize your project. When running the previous command, you will be prompted to fill in the following values:

  • project_name: Name of the project. This variable will also be used to create the default value for the project slug.
  • project_slug: URL friendly name of the project. It is recommended to keep the default value.
  • project_acronym: Acronym of the project. Defaults to the first letter of each word in project_slug, capitalized. It is recommended to maintain the default value.
  • project_short_description: Short description of the project.
  • version: Initial version of the project. If using a different value from the default, please follow Semantic Versioning recommendations.
  • cpp_standard: C++ standard to use for compilation. Available values are C++17 (default), C++14 and C++11.
  • library_type: kind of library to build, either shared (default) or static.
  • full_name: Full name of the main maintainer of the project.
  • email: Contact email of the main maintainer of the project.
  • license: default license file for the project.
  • vscode_project: flag to control generation of .vscode folder, with default snippets (VSCode text editor config files).
  • add_spdlog_utils: Flag that controls whether or not to add some spdlog utility functions. Defaults to true.

Python module (with poetry support) (dir-name: python)

A Cookiecutter template for python projects.

Dependencies

This template is intended to be used with the following libraries for environment and package management:

Although it can be used without them.

Variables

Variables allow to customize your project. When running the previous command, you will be prompted to fill in the following values:

  • project_name: name of the project. This variable will also be used to create the default value for the project slug.
  • project_slug: URL friendly name of the project. It is recommended to keep the default value.
  • project_description: short description of the project.
  • version: initial version of the project. If using a different value from the default, please follow Semantic Versioning recommendations.
  • python_version: minimum required Python version in order to run the program.
  • _generate_pyenv_file: flag to control generation of .python-version file (local Python version definition file for pyenv).
  • generate_poetry_file: flag to control generation of pyproject.toml file (Poetry build system definition file).
  • vscode_project: flag to control generation of .vscode folder, with default tasks.json file and some snippets (VSCode text editor config files).
  • full_name: full name of the main maintainer of the project.
  • email: contact email of the main maintainer of the project.
  • license: default license file for the project.

Matlab project (dir-name: matlab)

A Cookiecutter template for matlab projects.

Variables

Variables allow to customize your project. When running the previous command, you will be prompted to fill in the following values:

  • project_name: name of the project. This variable will also be used to create the default value for the project slug.
  • project_slug: URL friendly name of the project. It is recommended to keep the default value.
  • project_description: short description of the project.
  • version: initial version of the project. If using a different value from the default, please follow Semantic Versioning recommendations.
  • matlab_version: target version for matlab (documentation purposes).
  • full_name: full name of the main maintainer of the project.
  • email: contact email of the main maintainer of the project.
  • license: default license file for the project.
  • vscode_project: flag to control generation of .vscode folder, with default tasks.json file and some snippets (VSCode text editor config files).

Contributing

If you want to contribute to this templating repository, feel free to do so! Create a new branch to work in and open a pull request when you are done! It will be reviewed and merged into master by one of the maintainers as soon as possible.

Authors

Maintainers

About

This repository can be used for generating a number of project structures in a number of different languages.

Resources

License

Stars

Watchers

Forks

Packages

No packages published