Skip to content

Commit

Permalink
Generate project structure using repo-config (#1)
Browse files Browse the repository at this point in the history
- **Generate project using repo-config**
- **Remove example files**
- **Add `part:client` GitHub label**
- **Fix the default branch for docs editing**
- **Sort and fix project's keywords**
- **Add project classifier**
- **Improve TOML formatting**
- **Remove TODOs that don't need addressing**
- **Add dependency to `grpcio`**
  • Loading branch information
llucax authored Feb 27, 2024
2 parents fca2eea + 5a69c45 commit fabaaea
Show file tree
Hide file tree
Showing 37 changed files with 1,848 additions and 2 deletions.
46 changes: 46 additions & 0 deletions .cookiecutter-replay.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"cookiecutter": {
"Introduction": "",
"type": "lib",
"name": "client-microgrid",
"description": "Microgrid API client for Python",
"title": "Frequenz Microgrid API Client",
"keywords": "client, microgrid, api",
"github_org": "frequenz-floss",
"license": "MIT",
"author_name": "Frequenz Energy-as-a-Service GmbH",
"author_email": "[email protected]",
"python_package": "frequenz.client.microgrid",
"pypi_package_name": "frequenz-client-microgrid",
"github_repo_name": "frequenz-client-microgrid-python",
"default_codeowners": "@frequenz-floss/api-microgrid-team",
"_template": "gh:frequenz-floss/frequenz-repo-config-python",
"_repo_dir": "/home/luca/.cookiecutters/frequenz-repo-config-python/cookiecutter",
"_checkout": "v0.9.1"
},
"_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)
- Client (part:client)
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-client-microgrid-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 Microgrid API Client 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:client": "part:client"
"part:docs": "part:docs"
"part:tests": "part:tests"
"part:tooling": "part:tooling"
"part:❓": "part:❓"
Loading

0 comments on commit fabaaea

Please sign in to comment.