Skip to content

Commit 855d106

Browse files
committedFeb 12, 2024·
chore: configure release flow
1 parent e684b0c commit 855d106

File tree

11 files changed

+275
-9
lines changed

11 files changed

+275
-9
lines changed
 

‎CHANGELOG.md

+166-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,170 @@
11
# Changelog
2+
23
All notable changes to this project will be documented in this file.
34

4-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5+
## [unreleased]
6+
7+
### Bug Fixes
8+
9+
- Clippy
10+
- Clippy large enum
11+
- Clippy
12+
- Use website url when opening feed
13+
- Path
14+
- Clippy
15+
- Workarround scrollbar rendering bug
16+
- Build
17+
18+
### Documentation
19+
20+
- Update README
21+
- Add badge
22+
- Update README
23+
- Update README
24+
- Update README
25+
26+
### Features
27+
28+
- Fetch dummy subscription
29+
- Impl event loop
30+
- Impl github auth
31+
- Add mock datastore
32+
- Impl login ui flow
33+
- Use appender
34+
- Add tabs ui
35+
- Impl subscription
36+
- Impl mutate subscription
37+
- Improve mutation response type
38+
- Impl feed subscribe mutation
39+
- Impl audit layer draft
40+
- Impl subscribe feed usecase
41+
- Improve audit layer
42+
- Impl subscribe feed usecase
43+
- Add fields to subscribe usecase
44+
- Find website url
45+
- Use table widget
46+
- Impl feed entries
47+
- Impl unsubscribe feed
48+
- Cache feed
49+
- Add tracelayer
50+
- Add middlewares
51+
- Combine tower and tower_http middleware
52+
- Use tower service as impl of authenticate layer
53+
- Detect color support
54+
- Impl fetch entries
55+
- Browse feeds
56+
- Add url to parse error
57+
- Make term testable
58+
- Add audit layer directive
59+
- Add clear command
60+
- Add o11y crate
61+
- Add opentelemetry-tracing log bridge layer
62+
- Add baggage propagation
63+
- Add opentelemetry layers
64+
- Update ratatui to 0.26 and fix breaking apis
65+
- Change local time format
66+
- Use tailwind color palettes
67+
- Change entries table constraint
68+
- Add palette flag
69+
- Add in_flight
70+
- Add in flight throbber
71+
- Add instrument
72+
- Impl kvsd client
73+
- Use kvsd
74+
- Improve subscription input handling
75+
- Improve feed subscription flow
76+
- Swap terminal restore step
77+
- Remove unsubscribed entries
78+
- Reload entries when subscribe feed
79+
- Serve https
80+
- Support axum_server graceful shutdown
81+
- Use cow
82+
- Update default endpoint
83+
84+
### Miscellaneous Tasks
85+
86+
- Add project files
87+
- Add rust-toolchain
88+
- Bump async-graphql to 7.0
89+
- Add flake
90+
- Update flake
91+
- Add nix workflow
92+
- Run nix flake check
93+
- Add workspace.package
94+
- Add license
95+
- Add changelog
96+
- Fix typo
97+
- Add CONTRIBUTING
98+
- Fix typo
99+
- Add syndapi to flake check
100+
- Add --all-systems flag to flake check
101+
- Add check task
102+
- Add ci devshell
103+
- Use ci shell
104+
- Use same shell settings in ci
105+
- Retry
106+
- Add helix config
107+
- Update helix config
108+
- Add extra substituer
109+
- Change client timeout to 10 sec
110+
- Debug
111+
- Add demo
112+
- Add Cargo package fields
113+
- Def version per crate
114+
- Enable integration feature in flake check
115+
- Add just feed
116+
- Format toml
117+
- Verbo flake check
118+
- Fix typo
119+
- Add test task
120+
- Remove comment
121+
- Use accept-flake-config flag
122+
- Use accept-flake-config flag
123+
- Enable integration test in flake check
124+
- Disable inactive-code diagnostic
125+
- Update build deps
126+
- Update build inputs
127+
- Use latest rust-analyzer
128+
- Organize dev files
129+
- Add dependabot
130+
- Add flags to api task
131+
- Kill before run api
132+
- Update src filter
133+
134+
### Refactor
135+
136+
- Clippy
137+
- Use subscription alias
138+
- Rename audit target
139+
- Create mutation mod
140+
- Remove feed meta
141+
- Use static fut auth layer
142+
- Organize ui components
143+
- Organize ui components
144+
- Mv to crates dir
145+
- Rename crates
146+
- Create synd_authn crate
147+
- Use clippy pedantic
148+
- Clippy
149+
- Rename datastore to repository
150+
- Rename to subscription repository
151+
- Rename to repository
152+
- Fix lint
153+
- Rename tab
154+
155+
### Styling
156+
157+
- Apply format
158+
159+
### Testing
160+
161+
- Add find website url
162+
- Add integration
163+
- Impl device flow test case
164+
- Fix wrong assertion
165+
- Add auth flow case
166+
- Run kvsd in test
167+
- Run integration test
168+
- Fix tls conf path
6169

7-
## [Unreleased]
170+
<!-- generated by git-cliff -->

‎Cargo.toml

+7
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,10 @@ missing_errors_doc = "allow"
6161
missing_panics_doc = "allow"
6262
module_name_repetitions = "allow"
6363
must_use_candidate = "allow"
64+
65+
[workspace.metadata.release]
66+
allow-branch = ["main"]
67+
pre-release-commit-message = "chore: release"
68+
pre-release-hook = ["just check", "just changelog"]
69+
pre-release-replacements = [{ file = "CHANGELOG.md", search = "unreleased", replace = "{{version}}" }]
70+
tag-message = "chore: release {{crate_name}} version {{version}}"

‎cliff.toml

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# git-cliff ~ default configuration file
2+
# https://git-cliff.org/docs/configuration
3+
#
4+
# Lines starting with "#" are comments.
5+
# Configuration options are organized into tables and keys.
6+
# See documentation for more information on available options.
7+
8+
[changelog]
9+
# changelog header
10+
header = """
11+
# Changelog\n
12+
All notable changes to this project will be documented in this file.\n
13+
"""
14+
# template for the changelog body
15+
# https://keats.github.io/tera/docs/#introduction
16+
body = """
17+
{% if version %}\
18+
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
19+
{% else %}\
20+
## [unreleased]
21+
{% endif %}\
22+
{% for group, commits in commits | group_by(attribute="group") %}
23+
### {{ group | upper_first }}
24+
{% for commit in commits %}
25+
- {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message | upper_first }}\
26+
{% endfor %}
27+
{% endfor %}\n
28+
"""
29+
# remove the leading and trailing whitespace from the template
30+
trim = true
31+
# changelog footer
32+
footer = """
33+
<!-- generated by git-cliff -->
34+
"""
35+
# postprocessors
36+
postprocessors = [
37+
# { pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL
38+
]
39+
[git]
40+
# parse the commits based on https://www.conventionalcommits.org
41+
conventional_commits = true
42+
# filter out the commits that are not conventional
43+
filter_unconventional = true
44+
# process each line of a commit as an individual commit
45+
split_commits = false
46+
# regex for preprocessing the commit messages
47+
commit_preprocessors = [
48+
# { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"}, # replace issue numbers
49+
]
50+
# regex for parsing and grouping commits
51+
commit_parsers = [
52+
{ message = "^feat", group = "Features" },
53+
{ message = "^fix", group = "Bug Fixes" },
54+
{ message = "^doc", group = "Documentation" },
55+
{ message = "^perf", group = "Performance" },
56+
{ message = "^refactor", group = "Refactor" },
57+
{ message = "^style", group = "Styling" },
58+
{ message = "^test", group = "Testing" },
59+
{ message = "^chore\\(release\\): prepare for", skip = true },
60+
{ message = "^chore\\(deps\\)", skip = true },
61+
{ message = "^chore\\(pr\\)", skip = true },
62+
{ message = "^chore\\(pull\\)", skip = true },
63+
{ message = "^chore|ci", group = "Miscellaneous Tasks" },
64+
{ body = ".*security", group = "Security" },
65+
{ message = "^revert", group = "Revert" },
66+
]
67+
# protect breaking changes from being skipped due to matching a skipping commit_parser
68+
protect_breaking_commits = false
69+
# filter out the commits that are not matched by commit parsers
70+
filter_commits = false
71+
# regex for matching git tags
72+
tag_pattern = "v[0-9].*"
73+
74+
# regex for skipping tags
75+
skip_tags = "v0.1.0-beta.1"
76+
# regex for ignoring tags
77+
ignore_tags = ""
78+
# sort the tags topologically
79+
topo_order = false
80+
# sort the commits inside sections by oldest/newest order
81+
sort_commits = "oldest"
82+
# limit the number of commits included in the changelog.
83+
# limit_commits = 42

‎crates/synd_api/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@ categories.workspace = true
44
edition.workspace = true
55
keywords.workspace = true
66
license.workspace = true
7-
readme.workspace = true
87
repository.workspace = true
98

109
description = "syndicationd backend api"
1110
name = "synd_api"
11+
readme = "README.md"
1212
version = "0.1.0"
1313

1414
[dependencies]
15-
synd_o11y = { path = "../synd_o11y" }
15+
synd_feed = { path = "../synd_feed", version = "0.1.0" }
16+
synd_o11y = { path = "../synd_o11y", version = "0.1.0" }
1617

1718
anyhow = { workspace = true }
1819
async-graphql = { version = "7.0", features = ["tracing"] }
@@ -33,7 +34,6 @@ reqwest = { workspace = true }
3334
serde = { workspace = true }
3435
serde_json = "1.0.111"
3536
supports-color = { version = "3.0.0" }
36-
synd_feed = { path = "../synd_feed", version = "0.1.0" }
3737
thiserror = { workspace = true }
3838
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
3939
tower = { version = "0.4.13", default_features = false, features = ["limit", "timeout"] }

‎crates/synd_api/README.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# synd_api
2+
3+
syndicationd graphql api server

‎crates/synd_feed/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ categories.workspace = true
44
edition.workspace = true
55
keywords.workspace = true
66
license.workspace = true
7-
readme.workspace = true
87
repository.workspace = true
98

109
description = "Library to handle syndication spec"
1110
name = "synd_feed"
11+
readme = "README.md"
1212
version = "0.1.0"
1313

1414
[dependencies]
@@ -19,7 +19,7 @@ feed-rs = { workspace = true }
1919
futures-util = { workspace = true }
2020
moka = { workspace = true, features = ["future"] }
2121
reqwest = { workspace = true, features = ["stream"] }
22-
thiserror = "1.0.56"
22+
thiserror = { workspace = true }
2323
tokio = { workspace = true }
2424
tracing = { workspace = true }
2525

‎crates/synd_feed/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# synd_feed
2+

‎crates/synd_o11y/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ categories.workspace = true
44
edition.workspace = true
55
keywords.workspace = true
66
license.workspace = true
7-
readme.workspace = true
87
repository.workspace = true
98

109
description = "syndicationd lib for tracing and opentelemetry ecosystem"
1110
name = "synd_o11y"
11+
readme = "README.md"
1212
version = "0.1.0"
1313

1414
[dependencies]

‎crates/synd_o11y/README.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# synd_o11y
2+
3+
syndicationd observability library

‎flake.nix

+1
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@
106106
# rust-analyzer
107107
opentelemetry-collector-contrib
108108
git-cliff
109+
cargo-release
109110
] ++ ci_packages ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ ];
110111

111112
in {

‎justfile

+4
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,7 @@ term *flags:
9292
# Run backends
9393
backend:
9494
zellij action new-tab --layout .dev/backend_layout.kdl
95+
96+
# Generate CHANGELOG
97+
changelog:
98+
git cliff out> CHANGELOG.md

0 commit comments

Comments
 (0)
Please sign in to comment.