Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .cookiecutter-replay.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"cookiecutter": {
"Introduction": "",
"type": "lib",
"name": "quantities",
"description": "Types for holding quantities with units",
"title": "Frequenz Quantities Library",
"keywords": "unit, conversion",
"github_org": "frequenz-floss",
"license": "MIT",
"author_name": "Frequenz Energy-as-a-Service GmbH",
"author_email": "[email protected]",
"python_package": "frequenz.quantities",
"pypi_package_name": "frequenz-quantities",
"github_repo_name": "frequenz-quantities-python",
"default_codeowners": "(like @some-org/some-team; defaults to a team based on the repo type)",
"_template": "gh:frequenz-floss/frequenz-repo-config-python"
},
"_cookiecutter": {
"Introduction": "{{cookiecutter | introduction}}",
"type": [
"actor",
"api",
"app",
"lib",
"model"
],
"name": null,
"description": null,
"title": "{{cookiecutter | proj_title}}",
"keywords": "(comma separated: 'frequenz', <type> and <name> are included automatically)",
"github_org": "frequenz-floss",
"license": [
"MIT",
"Proprietary"
],
"author_name": "Frequenz Energy-as-a-Service GmbH",
"author_email": "[email protected]",
"python_package": "{{cookiecutter | python_package}}",
"pypi_package_name": "{{cookiecutter | pypi_package_name}}",
"github_repo_name": "{{cookiecutter | github_repo_name}}",
"default_codeowners": "(like @some-org/some-team; defaults to a team based on the repo type)"
}
}
26 changes: 26 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true

# Set default charset, indent style and trimming of whitespace
[{.editorconfig,CODEOWNERS,LICENSE,*.{in,json,md,proto,py,pyi,toml,yaml,yml}}]
charset = utf-8
indent_style = space
trim_trailing_whitespace = true

# 4 space indentation
[*.{py,pyi}]
indent_size = 4

# 2 space indentation
[{.editorconfig,CODEOWNERS,LICENSE,*.{in,json,proto,toml,yaml,yml}}]
indent_size = 2

# No indentation size specified for *.md because different blocks have
# different indentation rules
64 changes: 64 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# GitHub issue form. For more information see:
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms

name: Report something is not working properly 🐛
description:
Use this if there is something that is not working properly. If you are not
sure or you need help making something work, please ask a question instead.
labels:
- "priority:❓"
- "type:bug"
body:
- type: markdown
attributes:
value:
Thanks for taking the time to fill out this bug report!
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Please tell us what happened that shouldn't have.
placeholder: What happened that shouldn't have.
validations:
required: true
- type: textarea
id: what-expected
attributes:
label: What did you expect instead?
description: Please tell us what did you expect to happen.
placeholder: What did you expect to happen.
validations:
required: true
- type: input
id: version
attributes:
label: Affected version(s)
description:
Please add a comma-separated list of the versions affected by this
issue.
placeholder: 'Example: v0.11.0, v0.12.0'
- type: dropdown
id: part
attributes:
label: Affected part(s)
description:
Which parts of the repo are affected by this issue? Select all that
apply.
multiple: true
options:
- I don't know (part:❓)
- Documentation (part:docs)
- Unit, integration and performance tests (part:tests)
- Build script, CI, dependencies, etc. (part:tooling)
- Code (part:code)
validations:
required: true
- type: textarea
id: extra
attributes:
label: Extra information
description:
Please write here any extra information you think it might be relevant,
e.g., if this didn't happen before, or if you suspect where the problem
might be.
placeholder: Any extra information you think it might be relevant.
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# GitHub issue template chooser. For more information see:
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser

blank_issues_enabled: true
contact_links:
- name: Ask a question ❓
url: https://github.com/frequenz-floss/frequenz-quantities-python/discussions/new?category=support
about: Use this if you are not sure how to do something, have installation problems, etc.
61 changes: 61 additions & 0 deletions .github/ISSUE_TEMPLATE/feature.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# GitHub issue form. For more information see:
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms

name: Request a feature or enhancement ✨
description: Use this if something is missing or could be done better or more easily.
labels:
- "part:❓"
- "priority:❓"
- "type:enhancement"
body:
- type: markdown
attributes:
value:
Thanks for taking the time to fill out this feature or enhancement
request!
- type: textarea
id: whats-needed
attributes:
label: What's needed?
description:
Please tell us what's missing or what could be done better or more easily.
placeholder: What's missing or what could be done better or more easily.
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed solution
description:
Please tell us how you think the needs above can be fulfilled. Only
fill this field if it wasn't described above.
placeholder:
How do you think the needs above can be fulfilled. Only fill this field
if it wasn't described above.
- type: textarea
id: use-cases
attributes:
label: Use cases
description:
Please tell us about the main use cases you see for this new feature or
enhancement to help us understand more.
placeholder:
The main use cases you see for this new feature or enhancement to help
us understand more.
- type: textarea
id: alternatives
attributes:
label: Alternatives and workarounds
description:
Please tell us if you tried any alternatives or workarounds for these
use cases and how (un)useful they were.
placeholder:
Any alternatives or workarounds for these use cases and how (un)useful
they were.
- type: textarea
id: additional-context
attributes:
label: Additional context
description:
Please add any additional information here - screenshots, diagrams, etc.
placeholder: Any additional information here - screenshots, diagrams, etc.
17 changes: 17 additions & 0 deletions .github/RELEASE_NOTES.template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Frequenz Quantities Library Release Notes

## Summary

<!-- Here goes a general summary of what this release is about -->

## Upgrading

<!-- Here goes notes on how to upgrade from previous versions, including deprecations and what they should be replaced with -->

## New Features

<!-- Here goes the main new features and examples or instructions on how to use them -->

## Bug Fixes

<!-- Here goes notable bug fixes that are worth a special mention or explanation -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# License: MIT
# Copyright © 2024 Frequenz Energy-as-a-Service GmbH
# This Dockerfile is used to run the tests in arm64, which is not supported by
# GitHub Actions at the moment.

FROM docker.io/library/ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive

# Install Python 3.11 and curl to install pip later
RUN apt-get update -y && \
apt-get install --no-install-recommends -y \
software-properties-common && \
add-apt-repository ppa:deadsnakes/ppa && \
apt-get install --no-install-recommends -y \
ca-certificates \
curl \
git \
python3.11 \
python3.11-distutils && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Install pip
RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11

RUN update-alternatives --install \
/usr/local/bin/python python /usr/bin/python3.11 1 && \
python -m pip install --upgrade --no-cache-dir pip

COPY entrypoint.bash /usr/bin/entrypoint.bash

ENTRYPOINT ["/usr/bin/entrypoint.bash"]
9 changes: 9 additions & 0 deletions .github/containers/nox-cross-arch/entrypoint.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash
# License: MIT
# Copyright © 2024 Frequenz Energy-as-a-Service GmbH
set -e

echo "System details:" $(uname -a)
echo "Machine:" $(uname -m)

exec "$@"
17 changes: 17 additions & 0 deletions .github/containers/test-installation/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# License: MIT
# Copyright © 2024 Frequenz Energy-as-a-Service GmbH
# This Dockerfile is used to test the installation of the python package in
# multiple platforms in the CI. It is not used to build the package itself.

FROM --platform=${TARGETPLATFORM} python:3.11-slim

RUN apt-get update -y && \
apt-get install --no-install-recommends -y \
git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
python -m pip install --upgrade --no-cache-dir pip

COPY dist dist
RUN pip install dist/*.whl && \
rm -rf dist
41 changes: 41 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "monthly"
day: "tuesday"
labels:
- "part:tooling"
- "type:tech-debt"
# Default versioning-strategy. For other versioning-strategy see:
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#versioning-strategy
versioning-strategy: auto
# Allow up to 10 open pull requests for updates to dependency versions
open-pull-requests-limit: 10
# We group production and development ("optional" in the context of
# pyproject.toml) dependency updates when they are patch and minor updates,
# so we end up with less PRs being generated.
# Major updates are still managed, but they'll create one PR per
# dependency, as major updates are expected to be breaking, it is better to
# manage them individually.
groups:
required:
dependency-type: "production"
update-types:
- "minor"
- "patch"
optional:
dependency-type: "development"
update-types:
- "minor"
- "patch"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
day: "tuesday"
labels:
- "part:tooling"
- "type:tech-debt"
19 changes: 19 additions & 0 deletions .github/keylabeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# KeywordLabeler app configuration. For more information check:
# https://github.com/ZeWaka/KeywordLabeler#readme

# Determines if we search the title (optional). Defaults to true.
matchTitle: true

# Determines if we search the body (optional). Defaults to true.
matchBody: true

# Determines if label matching is case sensitive (optional). Defaults to true.
caseSensitive: true

# Explicit keyword mappings to labels. Form of match:label. Required.
labelMappings:
"part:code": "part:code"
"part:docs": "part:docs"
"part:tests": "part:tests"
"part:tooling": "part:tooling"
"part:❓": "part:❓"
Loading