Skip to content

Commit

Permalink
Refactor: Apply Copier template
Browse files Browse the repository at this point in the history
  • Loading branch information
adrien-berchet authored and arnaudon committed Sep 1, 2022
1 parent d0eaafd commit 61ee764
Show file tree
Hide file tree
Showing 54 changed files with 526 additions and 191 deletions.
13 changes: 13 additions & 0 deletions .auto-changelog
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"output": "CHANGELOG.md",
"template": ".auto-changelog-template.hbs",
"tagPrefix": "synthesis-workflow-v",
"commitLimit": false,
"backfillLimit": false,
"ignoreCommitPattern": "Release [0-9]+\\.[0-9]+\\.[0-9]+|Update CHANGELOG.*|.*\\[skip-changelog\\].*|\\[pre-commit.ci\\]",
"commitUrl": "https://bbpgitlab.epfl.ch/neuromath/synthesis-workflow/commit/{id}",
"issueUrl": "https://bbpgitlab.epfl.ch/neuromath/synthesis-workflow/issues/{id}",
"mergeUrl": "https://bbpgitlab.epfl.ch/neuromath/synthesis-workflow/merge_requests/{id}",
"compareUrl": "https://bbpgitlab.epfl.ch/neuromath/synthesis-workflow/compare/{from}...{to}",
"startingVersion": "0.1.1"
}
176 changes: 176 additions & 0 deletions .auto-changelog-template.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
# Changelog

{{!--
Introduction
• This template tries to follow conventional commits format https://www.conventionalcommits.org/en/v1.0.0/
• The template uses regex to filter commit types into their own headings (this is more than just fixes and features headings)
• It also uses the replaceText function in package.json to remove the commit type text from the message, because the headers are shown instead.
• The text 'Breaking:' or 'Breaking changes:' can be located anywhere in the commit.
• The types feat:, fix:, chore:, docs:, refactor:, test:, style:, perf: must be at the beginning of the commit subject with an : on end.
• They can optionally have a scope set to outline the module or component that is affected eg feat(bldAssess):
• There is a short hash on the end of every commit that is currently commented out so that change log did not grow too long (due to some system's file size limitations). You can uncomment if you wish [`{{shorthash}}`]({{href}})
Example Definitions
• feat: A new feature
• fix: A bug fix
• perf: A code change that improves performance
• refactor: A code change that neither fixes a bug nor adds a feature
• style: Changes that do not affect the meaning of the code (white-space, formatting, spelling mistakes, missing semi-colons, etc)
• test: Adding missing tests or correcting existing tests
• docs: Adding/updating documentation
• chore: Something like updating a library version, or moving files to be in a better location and updating all file refs
--}}


{{!-- In package.json need to add this to remove label text from the change log output (because the markdown headers are now used to group them).
NOTES • Individual brackets have been escaped twice to be Json compliant.
• For items that define a scope eg feat(bldAssess): We remove the 1st bracket and then re-add it so we can select the right piece of text
{
"name": "my-awesome-package",
"auto-changelog": {
"replaceText": {
"([bB]reaking:)": "",
"([bB]reaking change:)": "",
"(^[fF]eat:)": "",
"(^[fF]eat\\()": "\\(",
"(^[fF]ix:)": "",
"(^[fF]ix\\()": "\\(",
"(^[cC]hore:)": "",
"(^[cC]hore\\()": "\\(",
"(^[dD]ocs:)": "",
"(^[dD]ocs\\()": "\\(",
"(^[rR]efactor:)": "",
"(^[rR]efactor\\()": "\\(",
"(^[tT]est:)": "",
"(^[tT]est\\()": "\\(",
"(^[sS]tyle:)": "",
"(^[sS]tyle\\()": "\\(",
"(^[pP]erf:)": "",
"(^[pP]erf\\()": "\\("
}
}
}
--}}

{{!--
Regex reminders
^ = starts with
\( = ( character (otherwise it is interpreted as a regex lookup group)
* = zero or more of the previous character
\s = whitespace
. = any character except newline
| = or
[aA] = charcter a or character A
--}}


{{#each releases}}
{{#if href}}
## [{{title}}]({{href}})
{{else}}
## {{title}}
{{/if}}

> {{niceDate}}

{{#if summary}}
{{summary}}
{{/if}}

{{! List commits that fix a given issues}}
{{#each fixes}}
- {{#if commit.breaking}}**Breaking change:** {{/if}}{{commit.subject}}{{#each fixes}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}}){{/each}}
{{/each}}

{{! List commits with 'breaking:' or 'Breaking change:' anywhere in the message under a heading}}
{{#commit-list merges heading='### Breaking Changes :warning:' message='[bB]reaking [cC]hange:|[bB]reaking:' exclude='\[skip-changelog\]'}}
- {{message}} @{{author}} <!--[`#{{id}}`]({{href}}) -->
{{/commit-list}}

{{! List commits organised under a heading, but not those already listed in the breaking section }}
{{#commit-list merges heading='### New Features' message='^[fF]eat:|[fF]eat\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{message}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list merges heading='### Fixes' message='^[fF]ix:|^[fF]ix\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{message}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list merges heading='### Chores And Housekeeping' message='^[cC]hore:|^[cC]hore\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{message}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list merges heading='### Documentation Changes' message='^[dD]ocs:|^[dD]ocs\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{message}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list merges heading='### Refactoring and Updates' message='^[rR]efactor:|^[rR]efactor\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{message}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list merges heading='### Changes to Test Assests' message='^[tT]est:|^[tT]est\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{message}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list merges heading='### Tidying of Code eg Whitespace' message='^[sS]tyle:|^[sS]tyle\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{message}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list merges heading='### Performance Improvements' message='^[pP]erf:|^[pP]erf\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{message}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list merges heading='### CI Improvements' message='^[cC][iI]:|^[cC][iI]\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{message}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list merges heading='### Uncategorized Changes' exclude='[bB]reaking [cC]hange:|[bB]reaking:|^[fF]eat:|^[fF]eat\(|^[fF]ix:|^[fF]ix\(|^[cC]hore:|^[cC]hore\(|^[cC][iI]:|^[cC][iI]\(|^[dD]ocs:|^[dD]ocs\(|^[rR]efactor:|^[rR]efactor\(|^[tT]est:|^[tT]est\(|^[sS]tyle:|^[sS]tyle\(|^[pP]erf:|^[pP]erf\(|\[skip-changelog\]'}}
- {{message}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}})
{{/commit-list}}

{{! List commits with 'breaking:' or 'Breaking change:' anywhere in the message under a heading}}
{{#commit-list commits heading='### Breaking Changes :warning:' message='[bB]reaking [cC]hange:|[bB]reaking:' exclude='\[skip-changelog\]'}}
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
{{/commit-list}}

{{! List commits organised under a heading, but not those already listed in the breaking section }}
{{#commit-list commits heading='### New Features' message='^[fF]eat:|[fF]eat\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list commits heading='### Fixes' message='^[fF]ix:|^[fF]ix\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list commits heading='### Chores And Housekeeping' message='^[cC]hore:|^[cC]hore\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list commits heading='### Documentation Changes' message='^[dD]ocs:|^[dD]ocs\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list commits heading='### Refactoring and Updates' message='^[rR]efactor:|^[rR]efactor\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list commits heading='### Changes to Test Assests' message='^[tT]est:|^[tT]est\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list commits heading='### Tidying of Code eg Whitespace' message='^[sS]tyle:|^[sS]tyle\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list commits heading='### Performance Improvements' message='^[pP]erf:|^[pP]erf\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list commits heading='### CI Improvements' message='^[cC][iI]:|^[cC][iI]\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
{{/commit-list}}

{{#commit-list commits heading='### Uncategorized Changes' exclude='[bB]reaking [cC]hange:|[bB]reaking:|^[fF]eat:|^[fF]eat\(|^[fF]ix:|^[fF]ix\(|^[cC]hore:|^[cC]hore\(|^[cC][iI]:|^[cC][iI]\(|^[dD]ocs:|^[dD]ocs\(|^[rR]efactor:|^[rR]efactor\(|^[tT]est:|^[tT]est\(|^[sS]tyle:|^[sS]tyle\(|^[pP]erf:|^[pP]erf\(|\[skip-changelog\]'}}
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
{{/commit-list}}

{{/each}}
Empty file added .codespellignorelines
Empty file.
3 changes: 3 additions & 0 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[codespell]
skip = .git/*
ignore-regex = @groupes.epfl.ch|hist|INT|INH
26 changes: 26 additions & 0 deletions .copier-answers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Changes here will be overwritten by Copier

_commit: 0.1.13
_src_path: git@bbpgitlab.epfl.ch:neuromath/python-template.git
author_email: bbp-ou-cells@groupes.epfl.ch
author_name: bbp-ou-cells
copyright_license: BBP-internal-confidential
copyright_year: '2022'
distribution_name: synthesis-workflow
download_url: https://bbpgitlab.epfl.ch/neuromath/synthesis-workflow
init_git: false
maintainer: null
package_name: synthesis_workflow
project_description: Workflow used for synthesis and its validation.
project_name: Synthesis Workflow
project_url: https://bbpteam.epfl.ch/documentation/projects/synthesis-workflow
repository_name: synthesis-workflow
repository_namespace: neuromath
repository_provider: gitlab
ssh_url: git@bbpgitlab.epfl.ch:neuromath/synthesis-workflow.git
support_py37: false
team_name: neuromath
tracker_url: https://bbpteam.epfl.ch/project/issues/projects/CELLS/issues
version: 0.1.2.dev1

# End of Copier answers
3 changes: 2 additions & 1 deletion .coveragerc
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
[paths]
source_synthesis =
source_paths =
src/synthesis_workflow
*/site-packages/synthesis_workflow
*/synthesis_workflow/src/synthesis_workflow
*/synthesis-workflow/src/synthesis_workflow

source_morphval =
Expand Down
5 changes: 5 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[flake8]
ignore =
E203, # E203: whitespace before ':'
W503 # W503: line break before binary operator
max-line-length = 100
44 changes: 37 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,14 +1,44 @@
# data
.eggs
.idea
*.pyc
*.swp
coverage.xml
*py~
*~
*.egg-info
.coverage*
doc/build
.tox

# Mac related stuff
.DS_Store

# Packaging builds
build
dist
.eggs

# tox
.tox

# coverage
.coverage
.coverage*
coverage.xml

# venv
venv
test_venv

# docs
docs/build
docs/source/autoapi/
docs/source/generated
docs/source/examples

# reports
reports
doc/source/autoapi/
doc/_images

# examples
examples/.ipynb_checkpoints
examples/*/out

# Node
node_modules
package-lock.json
43 changes: 43 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
default_language_version:
python: python3.8
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: check-added-large-files
- id: check-case-conflict
- id: check-merge-conflict
- id: check-symlinks
- id: check-yaml
- id: debug-statements
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
rev: v9.0.0
hooks:
- id: commitlint
stages:
- commit-msg
additional_dependencies: ['conventional-changelog-conventionalcommits']
- repo: https://github.com/pycqa/isort
rev: 5.10.1
hooks:
- id: isort
- repo: https://github.com/psf/black
rev: 22.6.0
hooks:
- id: black
- repo: https://github.com/codespell-project/codespell
rev: v2.1.0
hooks:
- id: codespell
args: ["-x", ".codespellignorelines"]
- repo: https://github.com/PyCQA/pydocstyle
rev: 6.1.1
hooks:
- id: pydocstyle
additional_dependencies: ["toml"]
- repo: https://github.com/PyCQA/flake8
rev: 5.0.4
hooks:
- id: flake8
55 changes: 55 additions & 0 deletions .pylintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
[MESSAGES CONTROL]
disable=
empty-docstring,
fixme,
invalid-name,
len-as-condition,
no-else-return

[FORMAT]
# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=\bhttps?://\S
# Maximum number of characters on a single line.
max-line-length=100

[DESIGN]
# Maximum number of arguments for function / method
max-args=10
# Argument names that match this expression will be ignored. Default to name
# with leading underscore
ignored-argument-names=_.*
# Maximum number of locals for function / method body
max-locals=25
# Maximum number of return / yield for function / method body
max-returns=6
# Maximum number of branch for function / method body
max-branches=15
# Maximum number of statements in function / method body
max-statements=50
# Maximum number of parents for a class (see R0901).
max-parents=7
# Maximum number of attributes for a class (see R0902).
max-attributes=40
# Minimum number of public methods for a class (see R0903).
min-public-methods=0
# Maximum number of public methods for a class (see R0904).
max-public-methods=60

[SIMILARITIES]
# checks for similarities and duplicated code. This computation may be
# memory / CPU intensive, so you should disable it if you experiments some
# problems.

# Minimum lines number of a similarity.
min-similarity-lines=25
# Ignore comments when computing similarities.
ignore-comments=yes
# Ignore docstrings when computing similarities.
ignore-docstrings=yes

[TYPECHECK]
# List of classes names for which member attributes should not be checked
# (useful for classes with attributes dynamically set).

# as of numpy 1.8.0, name resolution seems to be a problem. Ignore lookups in numpy
# ignored-classes=numpy,list
Loading

0 comments on commit 61ee764

Please sign in to comment.