or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing
xxxxxxxxxx
Getting rid of release and changelog fields in spec files
Requirements
Approaches
Changelog
Get the list of builds from the build system
The macro would start by getting the commit hash for each of the previous builds so the corresponding changelog entries can have the associate <version>-<release>.
Changelog from last build
The macro starts by getting the old changelog from the last build and only appends to it the new changes
Annotated git tags
Use annotated git tags to store the changelog information.
Towncrier-like
Towncrier auto-generates changelog from a collection of "news" files. Everytime someone contributes a change that is worth informing users about, they add a "news" file, which are then gathered together when a release is made. We could have a similar approach, with a
news
folder in the git repo, and have packager contribute content to it as they make changes that would need to be notified to users.Inclusive Magic Keywords
The commit message contains a commit message to tell the process to include its message in the generate changelog.
The generated changelog can be tweaked using other magic keywords: #ignore <commit hash> or #replace <commit hash> to either remove or replace a commit message from the generate changelog.
Exclusive Magic Keywords
The commit message contains a commit message to tell the process to exclude a message in the generated changelog.
The generated changelog can be tweaked using other magic keywords: #ignore <commit hash> or #replace <commit hash> to either remove or replace a commit message from the generate changelog.
External changelog
The changelog is stored outside of the spec file, in a different, dedicated, file.
Exclusive Magic Keyword + external changelog
The current RPM changelog is removed from the current spec file and placed into another file in dist-git. The macro gets specified the name of the external changelog. The macro generates the changelog up until the last commit touching the external changelog file. A magic keyword can be used to ignore a specific commit (#ignore?).
Editing the changelog ends up doing: fedpkg generate-changelog Take the output and put it in the external changelog, tweak it as desired and commit your changes. The macro will include this external changelog and ignore the entire history before that commit.
Release
Get the release field using the number of tags since the last version change
Get the release field from the annotation of the git tag
Compute the release field from the number of successful build since the last version change
Compute the release field from the number of commits since the last version change:
<version>-<commits_number>%{dist}
Compute the release field from the number of commits since the last version change and number of successful builds for this
<version>-<commits_number>.<number of builds for this commit>%{dist}
Compute the release field from EVRs of builds that must be sorted lower (i.e. anything in Fedora versions up to the current one) and EVRs from builds that should be higher, if possible at all (anything in later Fedora versions)