-
-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
release: 5.0.0 #4423
release: 5.0.0 #4423
Conversation
This comment has been minimized.
This comment has been minimized.
I notice some of the merged lists are deleted from draft release. I assume, release-drafter overwrote them. Now, I'm trying to generate merged list between Btw, I notice draft release visibility is not public. |
@yoshinorin Yes, at least I can see. So I suppose every hexojs team member can see it. |
This comment has been minimized.
This comment has been minimized.
Thank you very very much @SukkaW ❤️ Here is between
## Breaking Change
chore/ci: drop Node.js 8 and add Node.js 14 @SukkaW [#4255]
refactor: remove site config from theme config @SukkaW [#4145]
## New feature
feat(post_ermalink): add `:second` attr option for post permalink @kkocdko [#4185]
feat(youtube_tag): add cookie option @curbengh [#4155]
feat(load_theme_config): support alternate theme config @SukkaW [#4120]
feat(youtube_tag): support playlist @SukkaW [#4139]
feat(feed_tag): support parsing config.feed @curbengh [#4029]
feat(tag): add unregister() method @SukkaW [#4046]
feat(filter): add `_after_html_render` filter @jiangtj [#4051]
feat(load_config): support theme_dir in node_modules @SukkaW [#4112]
## Performance
perf(post): simplify codeblock escape @SukkaW [#4254]
perf(meta_generator): avoid unnecessary check @SukkaW [#4208]
perf(external_link): cache config @SukkaW [#4134]
perf(open_graph): avoid using htmlTag() and enhance cache @SukkaW [#4125]
refactor(list_archives): reduce calls to date.format() @dailyrandomphoto [#4011]
fix(moment.locale): avoid lookup repeatedly with the wrong names @dailyrandomphoto [#4007]
refactor(external_link): optimize @SukkaW [#4008]
## Fix
fix: access error code from error object directly @SukkaW [#4280]
fix(#4251): load_plugin with extra line EOF @SukkaW [#4256]
fix: parsing code error in backticks @seaoak [#4229]
fix(post): use non-greedy regular expressions @stevenjoezhang [#4161]
fix(console_generate): remove useless boolean-to-object conversion @curbengh [#4152]
fix(toc_helper): escape class name and handle null id @curbengh [#4009]
fix(meta_generator): avoid an edge case @SukkaW [#4017]
fix(list_tags): custom class for each element @noraj [#4059]
## Refactor
refactor: drop hexo-util#HashStream @SukkaW [#4279]
refactor(toc): avoid using htmlTag @SukkaW [#4183]
refactor(hexo_index): remove unused parameter @curbengh [#4153]
Refactor(class): Replace prototype to class syntax @segayuu [#4151]
refactor: copy object with spread operator @SukkaW [#4140]
refactor: simplify code @Himself65 [#4138]
refactor: utilize Object.entries @SukkaW [#4118]
refactor: utilize hexo-util pr-169 @SukkaW [#4045]
refactor(hexo/index): use Set @SukkaW [#4013]
refactor: Class syntax @SukkaW [#4100]
refactor(helper): minor changes @SukkaW [#4061]
style: space for asyncArrow @SukkaW [#4102]
## Dependencies
chore(deps-dev): bump eslint from 6.8.0 to 7.0.0 @dependabot-preview [#4301]
chore(deps-dev): bump lint-staged from 9.5.0 to 10.2.0 @dependabot-preview [#4283]
chore(deps): bump hexo-fs from 2.0.0 to 3.0.1 @dependabot-preview [#4277]
chore(deps): bump hexo-util from 1.9.0 to 2.0.0 @dependabot-preview [#4276]
chore(deps-dev): bump sinon from 8.1.1 to 9.0.2 @dependabot-preview [#4232]
chore(deps-dev): bump husky from 3.1.0 to 4.2.5 @dependabot-preview [#4235]
chore(deps): bump chalk from 3.0.0 to 4.0.0 @dependabot-preview [#4215]
chore(deps): bump warehouse from 3.0.1 to 3.0.2 @curbengh [#4077]
chore(deps-dev): bump mocha from 6.2.2 to 7.0.0 @dependabot-preview [#4060]
chore(deps-dev): bump nyc from 14.1.1 to 15.0.0 @dependabot-preview [#4003]
chore(deps-dev): bump sinon from 7.5.0 to 8.0.1 @dependabot-preview [#4005]
## Misc
chore(release-drafter): wrap PR reference in square bracket @curbengh [#4284]
chore: add release release-drafter (#3858) @YoshinoriN [#4165]
ci: add GitHub Actions to run linter @Himself65 [#4143]
ci(benchmark): generate flamegraph @SukkaW [#4000]
ci(travis): remove Windows @curbengh [#4076]
ci(flamegraph): fix 0x @SukkaW [#4116]
ci(github_actions): Create tester job @segayuu [#4169]
fix: return callback if called @curbengh [#4178]
fix: remove useless conditions @curbengh [#4147]
## Test
test: coverage improvements @SukkaW [#4270] [#4421] [#4422]
test(box): fix test cases for macOS @stevenjoezhang [#4269]
test(load_plugins): make sure file is created @SukkaW [#4265]
test(post): adding extra test cases @SukkaW [#4238]
test(load_plugins): minor changes @SukkaW [#4212]
test(post): fix cases added in #4161 @SukkaW [#4162]
test(tags-plugins/helper): improve test coverage @SukkaW [#4014]
style(test-helper-is): asyncArrow space @SukkaW [#4015]
test(post_permalink): async/await @curbengh [#4025]
test: improve coverage @SukkaW [#4050]
test(load-database): fix EPERM error in windows @curbengh [#4069]
test: useful sinon.assert @segayuu [#4164]
test: replace from rewire to sinon.stub() @segayuu [#4157]
refactor(test-theme_processors-view): async/await @curbengh [#4043]
refactor(test-theme_processors-source): async/await @curbengh [#4042]
refactor(test-theme_processors-i18n): async/await @curbengh [#4041]
refactor(test-theme_processors-config): async/await @curbengh [#4040]
refactor(test-theme-theme): async/await @curbengh [#4039]
refactor(test-processors-post): async/await @curbengh [#4038]
refactor(test-processors-asset): async/await @curbengh [#4037]
refactor(test-processors-data): async/await @curbengh [#4036]
refactor(test-models-tag): async/await @curbengh [#4035]
refactor(test-models-post_asset): async/await @curbengh [#4034]
refactor(test-models-page): async/await @curbengh [#4033]
refactor(test-models-category): async/await @curbengh [#4032]
refactor(test-models-asset): async/await @curbengh [#4031]
refactor(test-helpers-tagcloud): async/await @curbengh [#4028]
refactor(test-helpers-partial): async/await @curbengh [#4027]
refactor(test-helpers-list): async/await @curbengh [#4026]
refactor(test-generators): async/await @curbengh [#4024]
refactor(test_new_post_path): async/await @curbengh [#4023]
refactor(test-extend-tag_errors): async/await @curbengh [#4022]
refactor(test-extend-tag): async/await @curbengh [#4021]
refactor(test-extend): async/await @curbengh [#4020]
refactor(test-open_graph): async/await @curbengh [#3995]
refactor(test-console-render): async/await @curbengh [#3980]
refactor(test-console-publish): async/await @curbengh [#3979]
refactor(test-console-new): async/await @curbengh [#3978]
refactor(test-list-categories-page-post-tags): async/await @curbengh [#3977]
refactor test @segayuu [#4115] Also, I put it on release draft :) PS: Source code is ... const axios = require("axios");
const httpClient = axios.create({
baseURL: 'https://api.github.com/',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${process.env.GITHUB_ACCESS_TOKEN}`
}
})
const query = `
query {
search(query: "repo:hexojs/hexo merged:2019-12-22..2020-05-17 is:merged", type:ISSUE, first:100) {
edges {
node {
... on PullRequest {
title,
number,
author {
login
},
labels(first:5) {
edges {
node {
name
}
}
},
mergedAt
}
}
}
}
}`
httpClient.post('graphql', { query }).then(response => {
const changes = [];
response.data.data.search.edges.forEach(x => {
const node = x.node;
const labels = [];
node.labels.edges.forEach(l => { labels.push(l.node.name) });
changes.push({
'labels': `${labels.sort((x, y) => x - y)}`,
'title': `${node.title}`,
'author': `@${node.author.login}`,
'number': `[#${node.number}]`
});
});
changes.sort((x, y) => x.title - y.title).forEach(c => {
console.log(`${c.labels}`)
console.log(`${c.title} ${c.author} ${c.number}`);
});
}).catch(error => {
console.log(error.response);
}); |
@yoshinorin We could maintain the release note here since there are still 3 pending PR will be merged into Also it should only be considered as the commit log and shouldn't be used directly as release note. We still need @curbengh since he is a good release note writer. @yoshinorin Done: I have them merged: ## Breaking Change
refactor(external_link): migrate config during load_config @SukkaW [#4414]
refactor(box): remove Bluebird.asCallback @SukkaW [#4379]
feat: bring up config.updated_option @SukkaW [#4278]
feat(open_graph): drop 'keywords' option from front-matter @curbengh [#4174]
fix(#3464): override permalink use the front-matter @SukkaW [#4359]
refactor: remove lodash from global variable @SukkaW [#4266]
chore/ci: drop Node.js 8 and add Node.js 14 @SukkaW [#4255]
refactor: remove site config from theme config @SukkaW [#4145]
## New feature
feat(tag): show source of the error & beautify @SukkaW [#4420]
feat(post_link): better error message for post not found [#4426]
skip assets of unpublished posts and delete them if exist @DaemondShu [#3489]
feat(extend/injector): bring up new extend Injector @SukkaW [#4049]
feat: add prism highlight support @SukkaW [#4119]
feat(tagcloud): new option class & level @stevenjoezhang [#4370]
feat(config): validate config after load_config @SukkaW [#4381]
feat(post_ermalink): add `:second` attr option for post permalink @kkocdko [#4185]
feat(youtube_tag): add cookie option @curbengh [#4155]
feat(load_theme_config): support alternate theme config @SukkaW [#4120]
feat(youtube_tag): support playlist @SukkaW [#4139]
feat(feed_tag): support parsing config.feed @curbengh [#4029]
feat(tag): add unregister() method @SukkaW [#4046]
feat(filter): add `_after_html_render` filter @jiangtj [#4051]
feat(load_config): support theme_dir in node_modules @SukkaW [#4112]
fix(list_tags): custom class for each element @noraj [#4059]
## Performance
perf(tag): rendering optimization @SukkaW [#4418]
perf(external_link): faster regexp & condition shorthand @SukkaW [#4436]
perf(filter): shorthand syntax @SukkaW [#4377]
perf(filter): set after_render:html as alias of _after_html_render @curbengh [#4073]
perf(backtick_code): shorthand @SukkaW [#4369]
perf: avoid running irrelevant plugins in 'clean' command @curbengh [#4386]
perf(titlecase): lazy require @SukkaW [#4417]
perf(tag/code): performance improvements @SukkaW [#4416]
perf(post): simplify codeblock escape @SukkaW [#4254]
perf(meta_generator): avoid unnecessary check @SukkaW [#4208]
perf(external_link): cache config @SukkaW [#4134]
perf(open_graph): avoid using htmlTag() and enhance cache @SukkaW [#4125]
refactor(list_archives): reduce calls to date.format() @dailyrandomphoto [#4011]
fix(moment.locale): avoid lookup repeatedly with the wrong names @dailyrandomphoto [#4007]
refactor(external_link): optimize @SukkaW [#4008]
## Fix
fix(box): ignore correct .git and node modules in the theme folder @jiangtj [#4306]
fix: posts without title should be accessible @stevenjoezhang [#4344]
fix(#4236): don't create "/index" directories when post_asset_folder is true @jiangtj [#4258]
fix(#4317): non-greedy regexp for tag escape @SukkaW [#4358]
fix(post): swig tag inside post @SukkaW [#4352]
fix(logging): log database only in relevant commands @curbengh [#4387]
fix(server-cache): must match exact alias @curbengh [#4388]
fix(tag-code): parse 'wrap' option @curbengh [#4391]
fix: remove unused type check @Himself65 [#4398]
fix: access error code from error object directly @SukkaW [#4280]
fix(#4251): load_plugin with extra line EOF @SukkaW [#4256]
fix: parsing code error in backticks @seaoak [#4229]
fix(post): use non-greedy regular expressions @stevenjoezhang [#4161]
fix(console_generate): remove useless boolean-to-object conversion @curbengh [#4152]
fix(toc_helper): escape class name and handle null id @curbengh [#4009]
fix(meta_generator): avoid an edge case @SukkaW [#4017]
## Refactor
fix(excerpt): stricter regex @curbengh [#4443]
refactor(meta_generator): no longer ignore empty @SukkaW [#4442]
refactor(external_link): migrate config during load_config @SukkaW [#4414]
Reduce array#reduce @segayuu [#4299]
Correct using createSha1Hash() with pipe() @seaoak [#4323]
refactor(post): reduce promise @SukkaW [#4337]
refactor: simplify code @2997ms [#4408]
refactor(external_link): filter regexp @segayuu [#4412]
refactor(hexo): merge theme_config before generation @SukkaW [#4360]
refactor(nunjucks): dedicated nunjucks renderer @SukkaW [#4356]
refactor: drop hexo-util#HashStream @SukkaW [#4279]
refactor(toc): avoid using htmlTag @SukkaW [#4183]
refactor(hexo_index): remove unused parameter @curbengh [#4153]
Refactor(class): Replace prototype to class syntax @segayuu [#4151]
refactor: copy object with spread operator @SukkaW [#4140]
refactor: simplify code @Himself65 [#4138]
refactor: utilize Object.entries @SukkaW [#4118]
refactor: utilize hexo-util pr-169 @SukkaW [#4045]
refactor(hexo/index): use Set @SukkaW [#4013]
refactor: Class syntax @SukkaW [#4100]
refactor(helper): minor changes @SukkaW [#4061]
style: space for asyncArrow @SukkaW [#4102]
Reduce stream @segayuu [#4333]
## Dependencies
chore(deps): update hexo-front-matter from 1.0.0 to 2.0.0 @SukkaW [#4439]
chore(deps): update hexo-util from 2.0.0 to 2.2.0 @curbengh [#4438]
chore(deps): bump hexo-log from 1.0.0 to 2.0.0 @dependabot-preview [#4392]
chore(deps-dev): bump hexo-renderer-marked from 2.0.0 to 3.0.0 @dependabot-preview [#4390]
chore(deps-dev): bump mocha from 7.2.0 to 8.0.1 @dependabot-preview [#4354]
Update tester node version @segayuu [#4324]
chore(deps-dev): bump eslint from 6.8.0 to 7.0.0 @dependabot-preview [#4301]
chore(deps): bump warehouse from 3.0.2 to 4.0.0 @SukkaW [#4322]
chore(deps): pin hexo-fs @SukkaW [#4336]
chore(deps-dev): bump eslint from 6.8.0 to 7.0.0 @dependabot-preview [#4301]
chore(deps-dev): bump lint-staged from 9.5.0 to 10.2.0 @dependabot-preview [#4283]
chore(deps): bump hexo-fs from 2.0.0 to 3.0.1 @dependabot-preview [#4277]
chore(deps): bump hexo-util from 1.9.0 to 2.0.0 @dependabot-preview [#4276]
chore(deps-dev): bump sinon from 8.1.1 to 9.0.2 @dependabot-preview [#4232]
chore(deps-dev): bump husky from 3.1.0 to 4.2.5 @dependabot-preview [#4235]
chore(deps): bump chalk from 3.0.0 to 4.0.0 @dependabot-preview [#4215]
chore(deps): bump warehouse from 3.0.1 to 3.0.2 @curbengh [#4077]
chore(deps-dev): bump mocha from 6.2.2 to 7.0.0 @dependabot-preview [#4060]
chore(deps-dev): bump nyc from 14.1.1 to 15.0.0 @dependabot-preview [#4003]
chore(deps-dev): bump sinon from 7.5.0 to 8.0.1 @dependabot-preview [#4005]
## Misc
feat: add benchmark script @Himself65 [#4405
Move coveralls from travis to github actions @segayuu [#4326]
refactor(console/generate): class & destructure assign @SukkaW [#4338]
Fix not to pass callback to hexo-fs @segayuu [#4339]
style: es6 string extensions & destructure @SukkaW [#4357]
docs: deprecate config.external_link (boolean) & config.use_date_for_updated @curbengh [#4371]
style: missing endline in .eslintrc @Himself65 [#4396]
ci(appveyor): drop appveyor @SukkaW [#4402]
chore(release-drafter): wrap PR reference in square bracket @curbengh [#4284]
chore: add release release-drafter (#3858) @YoshinoriN [#4165]
ci: add GitHub Actions to run linter @Himself65 [#4143]
ci(benchmark): generate flamegraph @SukkaW [#4000]
ci(travis): remove Windows @curbengh [#4076]
ci(flamegraph): fix 0x @SukkaW [#4116]
ci(github_actions): Create tester job @segayuu [#4169]
fix: return callback if called @curbengh [#4178]
fix: remove useless conditions @curbengh [#4147]
refactor(benchmark): minor changes @SukkaW [#4411]
github(issue_template): add special notice @SukkaW [#4348]
## Test
test(benchmark): optimize for local & render post support @SukkaW [#4428]
perf(mocha): run tests in parallel @curbengh [#4374]
refactor(test): async hexo/load_config.js @segayuu [#4340]
test(#4087): add related cases @SukkaW [#4364]
test(post): add test cases for #3543 & #3459 @SukkaW [#4361]
refactor(test-hexo): async/await @curbengh [#4389]
test(generate): add a small delay before clean up @SukkaW [#4393]
test(#4385): no double escape in code block @SukkaW [#4395]
test(generate): add a longer delay after fs#unlink @SukkaW [#4400]
test: coverage improvements @SukkaW [#4270] [#4421] [#4422]
test(box): fix test cases for macOS @stevenjoezhang [#4269]
test(load_plugins): make sure file is created @SukkaW [#4265]
test(post): adding extra test cases @SukkaW [#4238]
test(load_plugins): minor changes @SukkaW [#4212]
test(post): fix cases added in #4161 @SukkaW [#4162]
test(tags-plugins/helper): improve test coverage @SukkaW [#4014]
style(test-helper-is): asyncArrow space @SukkaW [#4015]
test(post_permalink): async/await @curbengh [#4025]
test: improve coverage @SukkaW [#4050]
test(load-database): fix EPERM error in windows @curbengh [#4069]
test: useful sinon.assert @segayuu [#4164]
test: replace from rewire to sinon.stub() @segayuu [#4157]
refactor(test-theme_processors-view): async/await @curbengh [#4043]
refactor(test-theme_processors-source): async/await @curbengh [#4042]
refactor(test-theme_processors-i18n): async/await @curbengh [#4041]
refactor(test-theme_processors-config): async/await @curbengh [#4040]
refactor(test-theme-theme): async/await @curbengh [#4039]
refactor(test-processors-post): async/await @curbengh [#4038]
refactor(test-processors-asset): async/await @curbengh [#4037]
refactor(test-processors-data): async/await @curbengh [#4036]
refactor(test-models-tag): async/await @curbengh [#4035]
refactor(test-models-post_asset): async/await @curbengh [#4034]
refactor(test-models-page): async/await @curbengh [#4033]
refactor(test-models-category): async/await @curbengh [#4032]
refactor(test-models-asset): async/await @curbengh [#4031]
refactor(test-helpers-tagcloud): async/await @curbengh [#4028]
refactor(test-helpers-partial): async/await @curbengh [#4027]
refactor(test-helpers-list): async/await @curbengh [#4026]
refactor(test-generators): async/await @curbengh [#4024]
refactor(test_new_post_path): async/await @curbengh [#4023]
refactor(test-extend-tag_errors): async/await @curbengh [#4022]
refactor(test-extend-tag): async/await @curbengh [#4021]
refactor(test-extend): async/await @curbengh [#4020]
refactor(test-open_graph): async/await @curbengh [#3995]
refactor(test-console-render): async/await @curbengh [#3980]
refactor(test-console-publish): async/await @curbengh [#3979]
refactor(test-console-new): async/await @curbengh [#3978]
refactor(test-list-categories-page-post-tags): async/await @curbengh [#3977]
refactor test @segayuu [#4115] |
I assume release-drafter will not override the current draft release. When I published After that release-drafter deleted So, I think this problem caused by release-drafter settings. I think we should use hexo/.github/release-drafter.yml Line 1 in 714e752
Anyway, thank you very much :) |
A newer version of hexo-util has already be released, waiting for dependabot opening a new PR. Also, after hexo-cli@4.0.0 is released, we should bump its version too. Latest hexo-starter should be merged into hexo-cli@4.1.0 along with hexo@5.0.0. |
It's a minor release and |
@curbengh @stevenjoezhang I will rebase the PR after #4439 #4440 #4442 are merged. Then I will mark the PR as ready for review. |
I would like to include #4443 as well. |
@curbengh @stevenjoezhang Rebased, and it is now ready for review. Full commit log can be found here: #4423 (comment) |
@curbengh We could finish Changelog here before we adding a new GitHub release. Change LogBreaking Changes
FeaturesInstall themes through npm
Support PrismJS syntax highlight
New Injector API
Other features
Bugs Fixed
Performance
HousekeepingDependencies
Test
Misc
|
@hexojs/core Hey, we could add a |
I find
you can create new release with that changelog, I'll edit it afterwards. I need some times for editing, don't want to delay the release. |
draft release bot will automatically override any edited release note if a new commit push into |
I mean the changelog you attached is fine for publishing the release, once published, the bot won't touch it. Pending dependabot to update hexo-cli@4 here. |
Done.
You see, after I have rebase 5.0.0 on the top of bumping hexo-cli, draft release bot override it again. Also, we have to merge the documents' PR first, in order to get those new page links to fill in the release note. Here is what we should do:
|
Merging... |
@curbengh It is now ready for release. |
@curbengh Would you mind publishing a newer version? |
Can we include #4446 in v5? |
@curbengh Probably not. Injector is designed to insert "static" HTML only. |
To confirm, this changelog is the canonical one? I start from that? |
The commit log since 4.2.0 can be foun here: #4423 (comment) |
@hexojs/cor
|
What does it do?
Release 5.0.0.
How to test
Pending deps:
Pending PR:
Pending documents:
perf(filter): set after_render:html as alias of _after_html_render #4073Pull request tasks