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

Feature: Preview/beta releases for improving stability #618

Closed
o-l-a-v opened this issue May 6, 2024 · 6 comments
Closed

Feature: Preview/beta releases for improving stability #618

o-l-a-v opened this issue May 6, 2024 · 6 comments
Assignees
Labels
enhancement New feature or request

Comments

@o-l-a-v
Copy link
Contributor

o-l-a-v commented May 6, 2024

Is your feature request related to a problem? Please describe.

EPAC pushes new versions and features very frequently. That's great. Recently though, some of these frequent changes have introduced regressions, which is less great.

EPAC manages critical components in production environments. It would be great if new stable releases could get some more testing before they are pushed out. We're currently POC-ing EPAC to replace our current solution, but these frequent breaking changes and regressions makes us a bit hesitant.

One way to achieve both frequent changes and improved stability would be to have prereleases, beta releases. So that's what I suggest.

Describe the solution you'd like

Release beta releases of EPAC to PowerShell Gallery. Then users can:

  • Use rolling stable releases of EPAC for deploying to production and staging environments.
  • Use rolling beta releases of EPAC to dev/test environments, to both test new features and provide the EPAC team with feedback.

Describe alternatives you've considered

  • Hardcode what EPAC version to use for deploy to production and staging environments.
    • Then updating EPAC will be a manual routine.
  • Use rolling releases for dev/test environment.

Additional context

AB#44045

@anwather
Copy link
Collaborator

anwather commented May 6, 2024

@techlake - something to look at in the future but I don't think we really have the resources to implement this at the moment. Maybe for new features however bug fixes we can't really avoid pushing new versions - nor do we have the test cases outside of our environments.

@techlake techlake added enhancement New feature or request and removed enhancement - future labels May 6, 2024
@techlake
Copy link
Contributor

techlake commented May 6, 2024

@anwather considering some of the issues (bugs) we had in v10: I think we need to tackle this.

@techlake
Copy link
Contributor

techlake commented May 7, 2024

https://learn.microsoft.com/en-us/powershell/gallery/concepts/module-prerelease-support?view=powershellget-3.x
https://learn.microsoft.com/en-us/powershell/gallery/concepts/module-prerelease-support?view=powershellget-3.x#prerelease-versioning-impact-on-sort-order-and-installation-folders

https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository

  • Optionally, to notify users that the release is not ready for production and may be unstable, select This is a pre-release.
  • Optionally, select Set as latest release. If you do not select this option, the latest release label will automatically be assigned based on semantic versioning.

@techlake techlake mentioned this issue May 7, 2024
@fslef
Copy link
Collaborator

fslef commented May 29, 2024

I would suggest using sampler to manage the PowerShell module lifecycle. It offers the following advantages:

Immediate benefits using Sampler:

  • Automated Releases: Use GH / ADO pipelines to automate release/prerelease publications to the gallery.
  • Changelog Maintenance: Automatically updates change logs with each release.
  • CI/CD Integration: Supports GitHub Actions, Azure Pipelines, and AppVeyor.
  • Versioning: Uses GitVersion for semantic versioning.
  • Cross-Platform Support: Ensures compatibility across Windows, Linux, and macOS.
  • Consistency: Enforces standard project structure and coding practices.

Other features to consider a few later:

  • Automated Testing: Integrates Pester tests for early issue detection. (Improve regression tests #624)
  • Documentation: Automates documentation generation from code comments and markdown files.
  • Quality Gates: Enforces code quality through coverage thresholds and linting rules.

@apybar
Copy link
Collaborator

apybar commented Aug 14, 2024

Adding to backlog

@anwather
Copy link
Collaborator

Closing as discussed with dev team - regression testing has been added to our internal ADO repo which has improved the quality of releases.

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

No branches or pull requests

5 participants