ChrisTitusTech / winutil

Chris Titus Tech's Windows Utility - Install Programs, Tweaks, Fixes, and Updates
MIT License
24.78k stars 1.5k forks source link

GitHub Workflows can be improved upon #2867

Open og-mrk opened 1 month ago

og-mrk commented 1 month ago

Problems I've found (so far)

  1. The release module is not great at the moment, several problems with it are:
    1. [IMPROVE] Documentation website doesn't get auto updated after each release (pre-release or stable), not really a problem anymore after @Real-MullaC PRs which fixed it through the use of some event triggers (on File modifications, run the workflow), ~I don't know if there's a better solution then the one present.. but if there's, we should try it out ( maybe we can use same or similar ideas/tactics to solve future CI/CD problems, who knows :D )~ There's a problem with how we generate parts of the docs, specifically the Dev Docs.. which should be updated on every stable release.
    2. [FEATURE] Now the Documentation website provides not only updated info on how to use & troubleshoot WinUtil.. but it also provides info related to what gets ran by X part of code base (i.e. the Dev Docs), these are great when you're reviewing what's being ran on latest release.. but the current structure doesn't support versioning of documentation, which's quite important when dealing with a project of this scale. So to put it simply.. we should add versioning to Documentation Website, hopefully to both User Guide & the Dev Docs, and if we couldn't.. then at least the Dev Docs, as it should be considered a "Source of Truth" for people reviewing tweaks and parts of the code base.. at a specific point in time.
    3. [FEATURE] Now the idea of WinUtil is to be easy to review it's code.. well there's the possibility to add other "versions" of WinUtil on each release, which're compressed (minified and/or g-zipped) for use by those who want faster downloads on slow networks.. this might introduce problems of "Which version you used?" when sending bug reports, plus AV False Positives.. but it's a nice thing to have if we get it working.
  2. Close discussion on PR merge is completely broken, this's due to the slow conversion of GitHub from REST APIs to GraphQL, this can be done through spending some time with the GitHub docs.. but currently no body really cares or even knows about this feature, which can be utilized to better manage the Discussion section, IMHO.
  3. This's a small thing, which's allowing certain contributors to label Issues, and if possible with Chris's permission, PRs as well. This will be of create help to organize Issue & PRs, plus grab the attention of certain important PRs to Chris. A good reference point is Linutil's slash commands workflow
  4. Unit Tests.. yup, I guess this requires it's own Issue Ticket, due to its massive scale to make Unit Testing WinUtil works. And if you're wondering that we already have Unit Testing.. then no, I'm not talking about testing script's syntax.. but the logic it self, does a tweak work or not in latest update of Windows, does problematic apps install without a problem (ahmm.. Spotify, ahmm), and the next step is testing GUI functionality, which requires writing our own Testing Framework.

Notes

I know the above may sound like complaining about things for the sake of complaining.. but its main purpose is to notify others about CI/CD problems & ideas, plus to document them. And about all the above suggestion were discussed in the past between contributors.. but never really tried it out (except for Labeling Command in Linutil).

If you've any suggestions or issue you noticed about CI/CD of repo, please consider writing them out in a comment below, it'll be much appreciated 😄

MyDrift-user commented 1 month ago

Do you mean with versioning docs that we have some kind of archive with old documentation?

og-mrk commented 1 month ago

Do you mean with versioning docs that we have some kind of archive with old documentation?

@MyDrift-user Yes, with some guarantee to maintain all these versioned docs, as long as they're not older then X Months, we can decide the maintenance cycle of this later, but I hope the idea became clearer.

The logic on how to do this will take some time.. but I think it'll make the final result alot better then its already is.

If you've any questions on this, or on other problems outlined in this issue, feel free to send them here, I'll try to reply quicker this time 😅