Skip to content
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

ci(): automate PR changelog #8938

Merged
merged 44 commits into from May 21, 2023
Merged

ci(): automate PR changelog #8938

merged 44 commits into from May 21, 2023

Conversation

ShaMan123
Copy link
Contributor

@ShaMan123 ShaMan123 commented May 20, 2023

Motivation

I don't want to keep copying a pr title for each PR I open and commit it.
It is very good to have it scoped to the PR.
So let github do it.

Description

This bit of CI does the following:
When a PR is opened or the title is changed it updates the changelog as following:

  • check if there is a log
  • if there is and it is identical to the PR title remove it
  • add title in the format of ## [next] if necessary
  • if there is no log add a log in the format of - ${pr_title} ${pr_md_link}\n

This means that we have full control over this action. We can still edit the changelog w/o the action interfering. Once the log doesn't match the PR title, updating the title will not affect the changelog.
We can also checkout the changelog and do whatever we like because once opened the only trigger to this action will be a title update.
Also it is still visible in the PR diff so no surprises.

Changes

Gist

In Action

@github-actions
Copy link
Contributor

github-actions bot commented May 20, 2023

Build Stats

file / KB (diff) bundled minified
fabric 920.049 (0) 303.756 (0)

@github-actions
Copy link
Contributor

github-actions bot commented May 20, 2023

Coverage after merging ci-auto-changelog into master will be

83.67%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
index.node.ts47.83%100%25%60%17, 20, 23, 40, 43, 46
src
   ClassRegistry.ts100%100%100%100%
   Collection.ts94.71%94.64%86.67%97.09%101, 104, 207–208, 233–234
   CommonMethods.ts96.55%87.50%100%100%10
   Intersection.ts100%100%100%100%
   Observable.ts87.23%85.29%84.62%89.36%144–145, 170–171, 39–40, 48, 57, 91, 99
   Point.ts100%100%100%100%
   Shadow.ts98.36%95.65%100%100%178
   cache.ts97.06%90%100%100%57
   config.ts75%66.67%66.67%82.76%130, 138, 138, 138, 138, 138–140, 151–153
   constants.ts100%100%100%100%
src/Pattern
   Pattern.ts92.21%91.89%90%93.33%116, 127, 136, 29, 92
src/brushes
   BaseBrush.ts100%100%100%100%
   CircleBrush.ts0%0%0%0%107, 107, 107, 109, 111, 113–115, 117–120, 127–128, 135, 137, 22–23, 31–35, 39–43, 50–53, 61–65, 67, 75, 75, 75, 75, 75–76, 78, 78, 78–81, 83, 91–92, 94, 96–98
   PatternBrush.ts97.06%87.50%100%100%21
   PencilBrush.ts91.01%82.35%100%93.75%122–123, 152, 152–154, 176, 176, 276, 280, 285–286, 68–69, 84–85
   SprayBrush.ts0%0%0%0%106, 106, 106, 106, 106–107, 109–110, 117–118, 120, 122–126, 135, 139–140, 140, 148, 148, 148–151, 153–156, 16, 160–161, 163, 165–168, 17, 171, 178–179, 181, 183–184, 186, 19, 193–194, 196–197, 20, 200, 200, 207, 207, 21, 21, 21, 211, 22–23, 27, 36, 43, 50, 57, 64, 83–85, 93–95, 97–98
src/canvas
   Canvas.ts78.87%77.54%81.67%79.41%1001–1002, 1002, 1002–1004, 1006–1007, 1007, 1007, 1009, 1017, 1017, 1017–1019, 1019, 1019, 1025–1026, 1034–1035, 1035, 1035–1036, 1041, 1043, 1074–1076, 1079–1080, 1084–1085, 1198–1200, 1203–1204, 1277, 1396, 1519, 1589, 162, 187, 297–298, 301–305, 310, 333–334, 339–344, 364, 364, 364–365, 365, 365–366, 37, 374, 379–380, 380, 380–381, 383, 392, 398–399, 399, 399, 41, 442, 450, 454, 454, 454–455, 457, 539–540, 540, 540–541, 547, 547, 547–549, 569, 571, 571, 571–572, 572, 572, 575, 575, 575–576, 579, 588–589, 591–592, 594, 594–595, 597–598, 610–611, 611, 611–612, 614–619, 625, 632, 669, 669, 669, 671, 673–678, 684, 690, 690, 690–691, 693, 696, 701, 714, 742, 742, 800–801, 801, 801–802, 804, 807–808, 808, 808–809, 811–812, 815, 815–817, 820–821, 891, 903, 910, 931, 963, 984–985
   SelectableCanvas.ts94.39%91.16%94.64%96.62%1119, 1119–1120, 1123, 1143, 1143, 1201, 1254–1255, 1276, 1284, 1409, 1411, 1413–1414, 518, 698–699, 701–702, 702, 702, 751–752, 813–814, 867–869, 901, 906–907, 934–935
   StaticCanvas.ts96.86%92.91%100%98.61%1102–1103, 1103, 1103–1104, 1224, 1234, 1288–1289, 1292, 1327–1328, 1405, 1414, 1414, 1418, 1418, 1465–1466, 310–311, 328, 759, 771–772
   TextEditingManager.ts82.69%55.56%91.67%100%15, 15, 15, 15, 15, 15, 15, 15
src/color
   Color.ts94.96%91.67%96.30%96.05%233, 258–259, 267–268, 48
   color_map.ts100%100%100%100%
   constants.ts100%100%100%100%
   util.ts85.71%76.92%100%89.74%55–56, 56, 58, 58, 58–59, 61–62, 89
src/controls
   Control.ts93.33%87.88%91.67%97.78%175, 240, 327, 327, 362
   changeWidth.ts100%100%100%100%
   commonControls.ts100%100%100%100%
   controlRendering.ts81.63%78%100%84.78%106, 111, 121, 121, 45, 50, 61, 61, 65–72, 81–82
   drag.ts100%100%100%100%
   fireEvent.ts88.89%75%100%100%13
   polyControl.ts5.97%0%0%11.11%100, 105, 119, 119, 119, 119, 119, 121–124, 124, 127, 134, 17, 25–29, 29, 29, 29, 29, 29, 29, 29, 50–56, 56, 56, 56, 56, 58, 63–64, 66, 76, 82–83, 83, 83–84, 88–90, 90, 90, 90, 90, 92
   rotate.ts19.57%12.50%50%21.43%41, 45, 51, 51, 51–52, 55–57, 59, 59, 59, 59, 59–61, 61, 61–63, 65, 65, 65–67, 67, 67–68, 73, 73, 73–74, 76, 78, 80–81
   scale.ts93.57%92.94%100%93.67%129–130, 132–134, 148–149, 181–183, 42
   scaleSkew.ts78.79%64.29%100%85.71%27, 29, 29, 29, 31, 33, 35
   skew.ts91.03%79.31%100%97.67%130–131, 162–163, 170, 176, 178
   util.ts100%100%100%100%
   wrapWithFireEvent.ts100%100%100%100%
   wrapWithFixedAnchor.ts100%100%100%100%
src/env
   browser.ts84.21%77.78%50%100%14, 17
   index.ts100%100%100%100%
   node.ts74.07%33.33%66.67%88.89%27, 31–32, 32, 32, 37
src/filters
   BaseFilter.ts21.62%23.21%32%18.27%100, 100, 100–101,

@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog ci(): automate PR changelog May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog ci(): automate PR changelog May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog ci(): automate PR changelog May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog ci(): automate PR changelog May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog ci(): automate PR changelog May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog ci(): automate PR changelog May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog ci(): automate PR changelog! May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog! ci(): automate PR changelog May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog ci(): automate PR changelog! May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog! ci(): automate PR changelog May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog ci(): automate PR changelog! May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog! ci(): automate PR changelog May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog ci(): automate PR changelog! May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog! ci(): automate PR changelog!#@ May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog!#@ ci(): automate PR changelog!#@34 May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog!#@34 ci(): automate PR changelog May 20, 2023
@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog ci(): automate PR changelog! May 20, 2023
Copy link
Contributor Author

@ShaMan123 ShaMan123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This bit of CI does the following:
When a PR is opened or the title is changed it updates the changelog as following:

  • check if there is a log
  • if there is and it is identical to the PR title remove it
  • add title in the format of ## [next] if necessary
  • if there is no log add a log in the format of - ${pr_title} ${pr_md_link}\n

This means that we have full control over this action. We can still edit the changelog w/o the action interfering. Once the log doesn't match the PR title, updating the title will not affect the changelog.
We can also checkout the changelog and do whatever we like because once opened the only trigger to this action will be a title update.
Also it is still visible in the PR diff so no surprises.

This is ready for review.
I am happy with it because it keeps to good concept of handling the changelog in each PR and automates it if needed. I have found myself annoyed with the process of opening a PR and then checking the PR number, copying the title, committing, waiting again for test etc.

Do you any concerns/thoughts?
Updated desc

@ShaMan123 ShaMan123 changed the title ci(): automate PR changelog! ci(): automate PR changelog May 20, 2023
@ShaMan123 ShaMan123 closed this May 20, 2023
@ShaMan123 ShaMan123 reopened this May 20, 2023
@ShaMan123
Copy link
Contributor Author

Now I am happy.
You can test it works by changing the PR title, checking out the file etc.

Copy link
Contributor Author

@ShaMan123 ShaMan123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@ShaMan123 ShaMan123 requested a review from asturur May 20, 2023 03:34
@asturur
Copy link
Member

asturur commented May 21, 2023

I think the cost of having another github action to potentially have to look at for issues is bigger than the issue of updating your changelog when your PR is done ( since anyway intent and final PR often end up diverging ).

I m ok adding this even if i think is unnecessary overhead.
But at the first issue that doesn't work or do something it wasn't supposed to do, i ll revert it.

@asturur asturur merged commit 6ac86c2 into master May 21, 2023
19 checks passed
@asturur asturur deleted the ci-auto-changelog branch May 21, 2023 23:03
@ShaMan123
Copy link
Contributor Author

Fair enough
Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants