On 21 Mar 11:15, Augustin Husson wrote: > Bumping the codemirror version / release can be simply done in the PR to > the release branches with the command `npm version "v2.35" --workspaces && > npm install`. > And then during the release CI, we just have to add somewhere `cd > web/ui/module/codemirror-promql && npm publish` > > Does it answer your questions ?
Okay, from your first email, my understanding was that codemirror was going to be a versioned dependency of the UI. I am fine with releasing both at the same time from the Prometheus repository. I hope it will solve the package.json issues. > > Le lun. 21 mars 2022 à 11:01, Julien Pivotto <[email protected]> a > écrit : > > > On 21 Mar 10:57, Augustin Husson wrote: > > > Hello Julien, > > > > > > I'm not sure I'm following what you would like. > > > Do you mean you would like to fallback to the situation before we had > > > codemirror into the upstream repo ? And so having only the react-app in > > > Prometheus ? (which removes the requirement to use the nmp workspaces > > > feature). > > > > > > That's another way yeah, but that would be a regression from my point of > > > view since you will have to ensure again that codemirror-promql is > > > correctly synchronized with the changes of PromQL. > > > > > > Probably releasing codemirror-promql with the same tag and same version > > of > > > Prometheus is the simplest way to release it and will allow us to put in > > > common the different deps used between codemirror-promql and the > > react-app. > > > It will create many releases with no changes for codemirror-promql, but > > > that would be the garantie that the version v2.35.0 of codemirror-promql > > is > > > compatible with the same version of Prometheus. > > > > > > Regards, > > > Augustin. > > > > It means we will have to make the release CI release codemirror first, > > then Prometheus. How do we commit the codemirror release hash in the > > package.lock, in a single commit/tag? > > > > Regards, > > > > > > > > > > > Le lun. 21 mars 2022 à 10:26, Julien Pivotto <[email protected]> > > a > > > écrit : > > > > > > > On 17 Mar 14:05, Augustin Husson wrote: > > > > > Dear Prometheus developers, > > > > > > > > > > As you may know, since a couple months ago, we changed the way the > > UI is > > > > > organized to be able to include the project codemirror-promql > > directly in > > > > > Prometheus. The idea was when changing the PromQL syntax, we also > > modify > > > > > codemirror-promql so we don't have any desync between the UI and the > > > > > backend. > > > > > > > > > > We are using the npm workspace feature which is the way with npm to > > > > manage > > > > > a mono-repo, and since this moment we have some troubles to upgrade > > the > > > > UI > > > > > dependencies like: > > > > > > > > > > - Not every files are correctly updated by dependabot > > > > > - There are some conflicts between the dependencies used in > > > > > codemirror-promql and in the react-app. Basically a dependency A > > in > > > > > codemirror-promql could be upgraded, but cannot in the react-app > > > > because > > > > > the react-app has some constraints that prevent this upgrade. > > Which > > > > leads > > > > > to not necessarily knowing which version of the dependency A is > > used. > > > > > > > > > > With just these two points above, updating the UI dependencies > > require > > > > too > > > > > much knowledge about how the npm workspaces are working and it is > > hard to > > > > > automatize. > > > > > > > > > > Since the last version where @Bjoern Rabenstein <[email protected]> > > > > faced > > > > > some difficulties to upgrade the UI dependencies, I have been > > thinking > > > > > about how to improve the situation. I have compared the Prometheus > > repo > > > > > with what we are doing in Perses where it is working without any > > issues > > > > > (aka using a npm monorepo). > > > > > And my conclusion is actually: we didn't embrace the way the > > monorepo is > > > > > supposed to work in the UI way. > > > > > > > > > > What we did is to put a side project (codemirror-promql) alongside > > of the > > > > > react-app without changing a thing. But instead we should actually > > align > > > > > and put in common a certain amount of dependencies used across the > > > > > different UI modules. > > > > > It wasn't possible to align the dependencies because we (actually I) > > > > said, > > > > > it will be cool to synchronize codemirror-promql to the repo > > > > > prometheus/codemirror-promql where we will make the release. > > > > > And for that, we need to build the repo which requires some > > > > > dev-dependencies ...etc so that cannot be put in common with the > > > > react-app. > > > > > > > > > > And like that we still have a tag associated with the release of > > > > > codemirror-promql. > > > > > > > > > > So after this tentative to explain the situation, here what I would > > like > > > > to > > > > > do, and where I would like your opinion on: > > > > > > > > > > I would like to stop the synchronization of the codemirror-promql. > > So we > > > > > need to find a new way to release codemirror-promql directly in the > > > > > Prometheus repository. > > > > > > > > > > So we could say, it is released at the same time as Prometheus > > itself. > > > > And > > > > > then: > > > > > > > > > > - With the same version. So we will bump the version of codemirror > > > > from > > > > > 0.19.0 to 2.35. > > > > > - Its own version (with a sort of script to know if > > codemirror-promql > > > > > has to be released since the Prometheus release or not). > > > > > > > > > > In both cases, the release of codemirror-promql will be behind the > > unique > > > > > tag of Prometheus. (i.e. v2.X.Y) > > > > > > > > > > Once we find the way, I will make the changes and after a couple of > > PRs > > > > we > > > > > should be back to a situation where with a quick command we will be > > able > > > > to > > > > > update or upgrade the UI dependencies. (The command is already known > > and > > > > I > > > > > experimented in Perses). > > > > > > > > > > Sorry for the long email, I tried to explain why it's a bit hard to > > > > upgrade > > > > > the dependencies and it's actually quite hard to explain without > > entering > > > > > in too much detail. > > > > > > > > > > All the best, > > > > > Augustin. > > > > > > > > Hello Augustin, > > > > > > > > I agree that the current way of working is painful. I'd be in favour of > > > > having codemirror living its own lifecycle outside of the main > > > > repository. > > > > > > > > It will also be easier for downstream builders. NPM workspaces are not > > > > supported everywhere yet (see > > > > https://github.com/NixOS/nixpkgs/pull/156078). > > > > > > > > As far as I am concerned, we could implement the change ASAP. > > > > > > > > Regards, > > > > > > > > -- > > > > Julien Pivotto > > > > @roidelapluie > > > > > > > > > > -- > > > You received this message because you are subscribed to the Google > > Groups "Prometheus Developers" group. > > > To unsubscribe from this group and stop receiving emails from it, send > > an email to [email protected]. > > > To view this discussion on the web visit > > https://groups.google.com/d/msgid/prometheus-developers/CAOJizGeX7aJ6k1-acEd264FT7m6txgU-N6_7gxGryOVoxqE2cQ%40mail.gmail.com > > . > > > > -- > > Julien Pivotto > > @roidelapluie > > > > -- > You received this message because you are subscribed to the Google Groups > "Prometheus Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/prometheus-developers/CAOJizGcxb_Hy0_45H4Pv2CLnEASkGxNU_j77p0yF0nHmq-whyQ%40mail.gmail.com. -- Julien Pivotto @roidelapluie -- You received this message because you are subscribed to the Google Groups "Prometheus Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/YjhUABqBk4PoU6UW%40nixos.

