Skip to content

Commit 7374834

Browse files
committed
Scaffold with broth
1 parent 76bca17 commit 7374834

16 files changed

+645
-82
lines changed

.editorconfig

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
root = true
2+
3+
[*]
4+
indent_style = space
5+
indent_size = 2
6+
charset = utf-8
7+
trim_trailing_whitespace = true
8+
insert_final_newline = true
9+
10+
[*.md]
11+
trim_trailing_whitespace = false
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Bug Report
2+
description: File a bug report
3+
title: "[Bug]: "
4+
labels:
5+
- bug
6+
- triage
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
Thanks for taking the time to fill out this bug report!
12+
- type: textarea
13+
id: what-happened
14+
attributes:
15+
label: What happened?
16+
description: Please tell us, what did you expect to happen?
17+
placeholder: Tell us what you see!
18+
value: A bug happened!
19+
validations:
20+
required: true
21+
- type: textarea
22+
id: version
23+
attributes:
24+
label: Version
25+
description: What version of the library are you running?
26+
placeholder: 0.0.0
27+
validations:
28+
required: true
29+
- type: dropdown
30+
id: platform
31+
attributes:
32+
label: On which platform(s) do you have the issue ?
33+
multiple: true
34+
options:
35+
- Any
36+
- Dart
37+
- Flutter
38+
- Firefox
39+
- Chrome
40+
- Safari
41+
- Microsoft Edge
42+
- Linux
43+
- Windows
44+
- MacOs
45+
- Other
46+
- type: textarea
47+
id: logs
48+
attributes:
49+
label: Relevant log output
50+
description: Please copy and paste any relevant log output. This will be
51+
automatically formatted into code, so no need for back ticks.
52+
render: shell
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Feature request
2+
description: Suggest an idea for this project
3+
title: "[Feature]: "
4+
labels:
5+
- feature
6+
- triage
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
Thanks for taking the time to fill out this feature request!
12+
- type: textarea
13+
id: problem
14+
attributes:
15+
label: Describe the problem
16+
description: Is your feature request related to a problem? Please describe.
17+
placeholder: Describe the problem you would like to solve
18+
value: My problem
19+
validations:
20+
required: true
21+
- type: textarea
22+
id: solution
23+
attributes:
24+
label: Describe the solution
25+
description: A clear and concise description of what you want to happen.
26+
placeholder: Tell us what you would like to see!
27+
value: My solution
28+
validations:
29+
required: true
30+
- type: textarea
31+
id: context
32+
attributes:
33+
label: Additional context
34+
description: Add any other context or screenshots about the feature request here.
35+
placeholder: A context
36+
value: The context
37+
validations:
38+
required: true
39+
- type: checkboxes
40+
id: suitability
41+
attributes:
42+
label: Is this new feature a good fit ?
43+
description: Should this new feature really be part of this project
44+
options:
45+
- label: "__Needed__: an existing user is going to need this in the short term"
46+
required: true
47+
- label: "__Specific__: the problem is clearly understood and defined"
48+
required: true
49+
- label: "__Small change__: This new feature represents a reasonably small change"
50+
required: true
51+
- label: "__Same scope__: this new feature does not change significantly the scope
52+
of this project"
53+
required: true
54+
- label: "__Long term maintenance__: moving this to a new project would make long
55+
term maintenance harder"
56+
required: true

.github/pull_request_template.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Summary of the change
2+
3+
Fixes: # (issue)
4+
5+
## Code check
6+
7+
- [x] `npx baldrick-broth@latest release ready` does not show any
8+
concerning issues
9+
10+
## Type of change
11+
12+
- [ ] Bug fix (non-breaking change which fixes an issue)
13+
14+
- [ ] Safe refactoring (non-breaking change which improves the code or
15+
documentation)
16+
17+
- [ ] New feature (non-breaking change which adds functionality)
18+
19+
- [ ] Breaking change (fix or feature that would cause existing
20+
functionality to not work as expected)
21+
22+
## Motivation and context
23+
24+
- [ ] improve user experience
25+
- [ ] improve consistency
26+
- [ ] improve security
27+
- [ ] improve documentation
28+
- [ ] improve code
29+
- [ ] reduce risk for unfamiliar tasks
30+
- [ ] automate repetitive tasks
31+
32+
## How Has This Been Tested
33+
34+
- [x] Unit tests
35+
- [ ] Automated browser tests
36+
- [ ] Manual tests

.github/workflows/main.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: ci
2+
on:
3+
push:
4+
branches:
5+
- main
6+
pull_request:
7+
branches:
8+
- main
9+
jobs:
10+
test:
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
matrix:
14+
os:
15+
- ubuntu-latest
16+
- macos-latest
17+
- windows-latest
18+
sdk:
19+
- 3.1
20+
steps:
21+
- uses: actions/checkout@v4
22+
- uses: dart-lang/setup-dart@v1
23+
with:
24+
sdk: ${{ matrix.sdk }}
25+
- name: Install dependencies
26+
run: dart pub get
27+
- name: Run tests
28+
run: dart test

.remarkrc.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
settings:
2+
bullet: "*"
3+
plugins:
4+
- remark-preset-lint-consistent
5+
- remark-preset-lint-recommended
6+
- remark-preset-lint-markdown-style-guide

.vscode/settings.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"makefile.extensionOutputFolder": "./.vscode",
3+
"yaml.schemas": {
4+
"./script/schema/project.schema.json": "script/data/project.yaml"
5+
}
6+
}

CODE_OF_CONDUCT.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project
7+
and our community a harassment-free experience for everyone, regardless of
8+
age, body size, disability, ethnicity, gender identity and expression, level
9+
of experience, nationality, personal appearance, race, religion, or sexual
10+
identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
- Using welcoming and inclusive language
18+
- Being respectful of differing viewpoints and experiences
19+
- Gracefully accepting constructive criticism
20+
- Focusing on what is best for the community
21+
- Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
- The use of sexualized language or imagery and unwelcome sexual
26+
attention or advances
27+
28+
- Trolling, insulting/derogatory comments, and personal or political
29+
attacks
30+
31+
- Public or private harassment
32+
33+
- Publishing others' private information, such as a physical or
34+
electronic address, without explicit permission
35+
36+
- Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Our Responsibilities
40+
41+
Project maintainers are responsible for clarifying the standards of
42+
acceptable behavior and are expected to take appropriate and fair corrective
43+
action in response to any instances of unacceptable behavior.
44+
45+
Project maintainers have the right and responsibility to remove, edit, or
46+
reject comments, commits, code, wiki edits, issues, and other contributions
47+
that are not aligned to this Code of Conduct, or to ban temporarily or
48+
permanently any contributor for other behaviors that they deem inappropriate,
49+
threatening, offensive, or harmful.
50+
51+
## Scope
52+
53+
This Code of Conduct applies both within project spaces and in public spaces
54+
when an individual is representing the project or its community. Examples of
55+
representing a project or community include using an official project e-mail
56+
address, posting via an official social media account, or acting as an
57+
appointed representative at an online or offline event. Representation of a
58+
project may be further defined and clarified by project maintainers.
59+
60+
## Enforcement
61+
62+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
63+
reported by contacting the project team at [](https://github.com/). The
64+
project team will review and investigate all complaints, and will respond in
65+
a way that it deems appropriate to the circumstances. The project team is
66+
obligated to maintain confidentiality with regard to the reporter of an
67+
incident. Further details of specific enforcement policies may be posted
68+
separately.
69+
70+
Project maintainers who do not follow or enforce the Code of Conduct in good
71+
faith may face temporary or permanent repercussions as determined by other
72+
members of the project's leadership.
73+
74+
## Attribution
75+
76+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
77+
version 1.4, available at
78+
[http://contributor-covenant.org/version/1/4][version]
79+
80+
[homepage]: http://contributor-covenant.org
81+
82+
[version]: http://contributor-covenant.org/version/1/4/

CONTRIBUTING.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Contributing
2+
3+
Welcome ! and many thanks for taking the time to contribute !
4+
5+
First, you should have a look at the [Technical design
6+
documentation](TECHNICAL_DESIGN.md) to get an understanding of the design
7+
behind this project.
8+
9+
From there, there are a few options depending of which kind of contributions
10+
you have in mind: bug fix, documentation improvement, translation, testing,
11+
...
12+
13+
Please note we have a [code of conduct](CODE_OF_CONDUCT.md), please follow it
14+
in all your interactions with the project.
15+
16+
## Build the project locally
17+
18+
The following commands should get you started:
19+
20+
Setup an alias:
21+
22+
```
23+
alias broth='npx baldrick-broth'
24+
```
25+
26+
or if you prefer to always use the latest version:
27+
28+
```
29+
alias broth='npx baldrick-broth@latest'
30+
```
31+
32+
Install the `dart` dependencies:
33+
34+
```bash
35+
dart pub get
36+
```
37+
38+
Run the unit tests:
39+
40+
```bash
41+
broth test unit
42+
```
43+
44+
A list of [most used commands](MAINTENANCE.md) is available:
45+
46+
```bash
47+
broth
48+
```
49+
50+
Please keep an eye on test coverage, bundle size and documentation.
51+
When you are ready for a pull request:
52+
53+
```bash
54+
broth release ready
55+
```
56+
57+
You will probably want to update the documentation:
58+
59+
```bash
60+
broth doc api
61+
```
62+
63+
You can also simulate [Github actions](https://docs.github.com/en/actions)
64+
locally with [act](https://github.com/nektos/act).
65+
You will need to setup `.actrc` with the node.js docker image `-P
66+
ubuntu-latest=node:16-buster`
67+
68+
To run the pipeline:
69+
70+
```bash
71+
broth github act
72+
```
73+
74+
## Pull Request Process
75+
76+
1. Make sure that an issue describing the intended code change exists and
77+
that this issue has been accepted.
78+
79+
When you are about to do a pull-request:
80+
81+
```bash
82+
broth release ready -pr
83+
```
84+
85+
Then you can create the pull-request:
86+
87+
```bash
88+
broth release pr
89+
```
90+
91+
## Publishing the library
92+
93+
This would be done by the main maintainers of the project. Locally for now as
94+
updates are pretty infrequent, and some of tests have to be done manually.
95+
96+
```bash
97+
broth release publish
98+
```

DECISIONS.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Architecture decision records
2+
3+
An [architecture
4+
decision](https://cloud.google.com/architecture/architecture-decision-records)
5+
is a software design choice that evaluates:
6+
7+
- a functional requirement (features).
8+
- a non-functional requirement (technologies, methodologies, libraries).
9+
10+
The purpose is to understand the reasons behind the current architecture, so
11+
they can be carried-on or re-visited in the future.

0 commit comments

Comments
 (0)