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

Build process is now broken #662

Closed
daimor opened this issue Dec 17, 2024 · 10 comments · Fixed by #663
Closed

Build process is now broken #662

daimor opened this issue Dec 17, 2024 · 10 comments · Fixed by #663
Assignees
Labels
bug Something isn't working customer documentation Improvements or additions to documentation prio: high
Milestone

Comments

@daimor
Copy link
Collaborator

daimor commented Dec 17, 2024

We are using IPM in our CI, and now it does not work

IPM is not enabled in this namespace.
Change namepace to one of the following to run the "zpm" command
%SYS> zpm 0.9.0 (DeveloperMode)

How it supposed to be enabled?
Why the message does not suggest, how to do it?

@daimor
Copy link
Collaborator Author

daimor commented Dec 17, 2024

ok I found how to enable it
but there is no default repositories

why did you release breaking change?

I'll need to fix all builds to older version now

@isc-tleavitt
Copy link
Contributor

isc-tleavitt commented Dec 17, 2024

For the short term: we'll fix this and get 0.9.1 out ASAP.

For the longer term: CI that says "download the current latest version of a dependency, whatever that happens to be, irrespective of semantic versioning" is fragile and wouldn't be a good idea in any other open-source ecosystem. I know we've directed people that way for a long time but it paints us into a corner.

@isc-tleavitt isc-tleavitt added bug Something isn't working customer regression-0.9 Regression bug introduced by IPM 0.9 prio: high labels Dec 17, 2024
@isc-tleavitt isc-tleavitt added this to the Backlog milestone Dec 17, 2024
@isc-tleavitt
Copy link
Contributor

@daimor if you can point to a CI process that fails this way, that would be helpful. In my observation most things seemed to be using the Developer Community containers which is why we filed intersystems-community/zpm-dockerhub#43 before release.

@daimor
Copy link
Collaborator Author

daimor commented Dec 17, 2024

We used zpm in our corporate builds. It we were using the latest version in the build, and with the release 0.9.0, our build ate broken, because it now requires additional steps, enable zpm globally and add removed public repository.

Previously just installing zpm from xml were enough.

I'm not going to change our build process to adjust to the new behavior, I'm going to use one of the previous releases. So, we will get stability in the builds

@isc-tleavitt
Copy link
Contributor

isc-tleavitt commented Dec 17, 2024

git blame for this: 5c8f4e9#diff-3f2db197477147c00fdfc3242d2cd3e309d30861f50232f98ffebf8e6ba4f3c3R70

On further consideration, this is actually intentional, and given that there are other necessary backwards-incompatible changes in 0.9.0 (esp. class naming) it makes sense to lump them all together. The road here is to inclusion of IPM with IRIS, and from a software supply chain security perspective we don't want to have the community repo enabled by default out of the box in IRIS (though we do want to make it easy to enable). We also want the ability to have different IPM versions in different namespaces to support multi-tenant use cases (different applications with different requirements in different namespaces).

Steps to reproduce on a clean installation (really the only case as an upgrade will migrate repos):

docker run irepo.intersystems.com/intersystems/iris-community:latest-preview
docker exec -it <that container> iris session iris
zn "%SYS"
s r=##class(%Net.HttpRequest).%New(),r.Server="pm.community.intersystems.com",r.SSLConfiguration="ISC.FeatureTracker.SSL.Config" d r.Get("/packages/zpm/latest/installer"),$system.OBJ.LoadStream(r.HttpResponse.Data,"c")
%SYS>zpm "repo -list"
No repositories found.

zpm "repo -reset-defaults" will still enable the community registry.

Things to do:

  • @isc-tleavitt: I need to get the 0.9.0 announcement out on Developer Community and highlight the per-namespace change specifically (didn't get to this yesterday - in retrospect, should have had it ready to go): https://community.intersystems.com/post/ipm-090-released
  • @isc-tleavitt: Update the basic installation documentation ("one-liner") with the semantic versioning note and follow-up steps/considerations
  • @isc-shuliu: zpm "enable" needs an option to map repos (globally / specifically) as well (say, "-repos"); might as well add an option to add the community repo. That gets to a single command (which we'll document explicitly). We'll have zpm "enable -community" as an alias for "-map -globally -repos" + "repo -reset-defaults"
  • @isc-shuliu: "Change namepace to one of the following to run the "zpm" command" should actually have instructions about running zpm "enable -map -globally" OR zpm "enable -community" from a proper namespace.
  • @isc-rkuszews: release 0.9.1

@isc-tleavitt isc-tleavitt added documentation Improvements or additions to documentation and removed regression-0.9 Regression bug introduced by IPM 0.9 labels Dec 17, 2024
@janihur
Copy link

janihur commented Dec 18, 2024

why did you release breaking change?

One should not be shocked that an open source project with semantic versioning on major version 0 introduces backwards incompatible changes. I think it's a widely agreed convention semantic versions < 1.0.0 are considered unstable and only versions since 1.0.0 indicate stable public API. I don't know how strictly this convention is used in InterSystems' ecosystem thought.

@isc-tleavitt
Copy link
Contributor

isc-tleavitt commented Dec 18, 2024

@janihur that's spot-on and would be my expectation for use of semantic versioning of packages in this ecosystem.

@isc-tleavitt
Copy link
Contributor

I filed intersystems-community/zpm-registry#119 which would let us have a better one-liner to recommend for CI.

@isc-tleavitt
Copy link
Contributor

The steps to get back to previous behavior are simplified (and properly documented) in 0.9.1:
zpm "enable -community"

@daimor
Copy link
Collaborator Author

daimor commented Dec 19, 2024

I don't want workarounds, show just work as before

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working customer documentation Improvements or additions to documentation prio: high
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants