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

Backport Tabs API to 2023/1 Community Release #12140

Closed
tsmaeder opened this issue Feb 2, 2023 · 28 comments
Closed

Backport Tabs API to 2023/1 Community Release #12140

tsmaeder opened this issue Feb 2, 2023 · 28 comments
Assignees
Labels
vscode issues related to VSCode compatibility

Comments

@tsmaeder
Copy link
Contributor

tsmaeder commented Feb 2, 2023

Feature Description:

There has been agreement in the community to backport the tabs API to the Jan. 2023 Community Release candidate. See #12109

@tsmaeder tsmaeder added the vscode issues related to VSCode compatibility label Feb 2, 2023
@tsmaeder
Copy link
Contributor Author

tsmaeder commented Feb 2, 2023

@vince-fugnitto do you have info on how to do this?

@tsmaeder tsmaeder self-assigned this Feb 2, 2023
@vince-fugnitto
Copy link
Member

@tsmaeder I don't mind performing the actual release but if you want to give it a try the procedure is simpler for patch and community releases:

  • prepare the release branch - test to confirm it works as expected
  • build the changes - packages should have their lib folders
  • npm login to get the access token to publish - I'll need to confirm if you have this
  • perform the release using the command yarn publish:latest - when prompted choose an appropriate version, in this case it'd be 1.34.1
  • let the release complete, in the end there should be changes to packages/core/README.md - add these changes to a new commit (ex: b374c7f)
  • preserve the two commits as is (not squashing) and push
  • we want to create an annotated tag for the release on the first release commit (not the readme update) so we create one and delete any local versions that lerna might have created
  • push the new annotated tag to the repo
  • draft a new release on GitHub with that tag for the community release (https://github.com/eclipse-theia/theia/releases/new)

@tsmaeder
Copy link
Contributor Author

tsmaeder commented Feb 2, 2023

prepare the release branch - test to confirm it works as expected

This is where the trouble starts: how do we create the release branch? I guess off the release tag. What name?

@vince-fugnitto
Copy link
Member

This is where the trouble starts: how do we create the release branch? I guess off the release tag. What name?

For patch and community release it is quite simple, we'd checkout release/1.34.0 and branch off. I believe @JonasHelming mentioned the name 1.34.1-community-2023 (previous releases used 1.29.2-community for example). Then we'd cherry-pick the commits we'd want to add, I assume tabs and bumping the API.

@JonasHelming
Copy link
Contributor

either 1.34-community or 1.34-community-2023-02
It does not make sense to include the micro version I guess, there might be several micro versions on the branch.
I prefer: 1.34-community-2023-02

@tsmaeder tsmaeder closed this as completed Feb 3, 2023
@tsmaeder
Copy link
Contributor Author

tsmaeder commented Feb 6, 2023

@vince-fugnitto I don't think I'll get my npm account sorted in time for this one. Would you be so kind as to do the release?

@tsmaeder
Copy link
Contributor Author

perform the release using the command yarn publish:latest - when prompted choose an appropriate version, in this case it'd be 1.34.1
let the release complete, in the end there should be changes to packages/core/README.md - add these changes to a new commit (ex: b374c7f)
preserve the two commits as is (not squashing) and push

@vince-fugnitto on the 1.34 release branch, the last commits look like this:

commit b9b00921c2874fa03aee3fceb08b702e532aa7f9 (HEAD -> 1.34-community-2023-02, origin/1.34-community-2023-02)
Author: vince-fugnitto <[email protected]>
Date:   Tue Feb 7 14:07:40 2023 -0500

    core: update re-exports for 1.34.1

    Signed-off-by: vince-fugnitto <[email protected]>

commit 474bdc10b58be92953496b8bcac2af25ee2b48a3 (tag: v1.34.1-community)
Author: vince-fugnitto <[email protected]>
Date:   Tue Feb 7 14:04:54 2023 -0500

    v1.34.1

I'm not how that chimes with your description above.

@vince-fugnitto
Copy link
Member

@tsmaeder yes that looks correct, each release will have the two commits:

  • version bump which will be the tag (ex: v1.34.1)
  • re-exports update

The double commits for a given release is due to lerna not performing one of the scripts which would perform the re-export for the same commit but rather as a second commit.

@tsmaeder
Copy link
Contributor Author

But the "re-export update" changes will be created automatically?

@vince-fugnitto
Copy link
Member

But the "re-export update" changes will be created automatically?

Yes the changes in the commit are done automatically. The result of yarn publish:latest will produce changes to core's readme (ex: b9b0092) which we will make the seperate re-exports commit for.

@tsmaeder
Copy link
Contributor Author

@vince-fugnitto the yarn publish:latest step fails with

> @theia/[email protected] prepare C:\Users\thomas\code\testdata\theia\packages\core
> yarn -s generate-theia-re-exports
lerna info lifecycle @theia/[email protected]~prepare: @theia/[email protected]

> @theia/[email protected] prepare C:\Users\thomas\code\testdata\theia\dev-packages\cli
> tsc -b

$ tsc --incremental && npx playwright install chromium
lerna ERR! E404 Not found
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

@vince-fugnitto
Copy link
Member

@tsmaeder would you like me to try?
It should not happen and I didn't encounter any issues when performing the regular release last week.

@tsmaeder
Copy link
Contributor Author

I'd like to figure out what the problem might be. We can't rely on you to be around all the time. Any idea on how to undo the effects so far and get more data?

@vince-fugnitto
Copy link
Member

It doesn't look like anything was actually published yet for 1.34.2 which is good, and if it was then there isn't much we can do besides using a new patch version (you can confirm if this is actually the case where no extensions were published). I'd make sure that everything is properly built with yarn where you have lib folders for each package (you can check just a couple as a sanity check), and also be sure to maybe not be on a vpn. The result of yarn publish:latest after choosing the new version when prompted should be successful if you let it run.

@tsmaeder
Copy link
Contributor Author

It doesn't look like anything was actually published yet for 1.34.2 which is good

so can I just reset --hard my local branch to the remote and try again?

@vince-fugnitto
Copy link
Member

It doesn't look like anything was actually published yet for 1.34.2 which is good

so can I just reset --hard my local branch to the remote and try again?

I'm pretty sure yea, the only thing I was worried about was if a subset of extensions were published previously but it does not seem like the case.

@tsmaeder
Copy link
Contributor Author

@vince-fugnitto the same problem keeps happening. Did anyone ever try to do a release from Windows?

@vince-fugnitto
Copy link
Member

I think @paul-marechal has but I'm not 100% sure.

@tsmaeder
Copy link
Contributor Author

tsmaeder commented Feb 27, 2023

@vince-fugnitto could you do the release once more, please? I'll try to find out what's wrong with my build, but I don't want to hold up the release. The release branch holds backported commits already.

@paul-marechal
Copy link
Member

I haven't released in a long while, but looking at your error:

$ tsc --incremental && npx playwright install chromium
lerna ERR! E404 Not found

I would attribute the 404 error to the npx playwright install chromium part of the command but I don't think playwright is useful for releasing, so you might be able to remove it from the command that's failing?

@vince-fugnitto
Copy link
Member

@vince-fugnitto could you do the release once more, please? I'll try to find out what's wrong with my build, but I don't want to hold up the release. The release branch holds backported commits already.

@tsmaeder I can release if you'd like me to for sure, unless you want to keep trying.

@tsmaeder
Copy link
Contributor Author

@vince-fugnitto yes, please.

@paul-marechal that was my first idea as well, but I can run npx playwright install chromium no problem inside the examples/playwright dir. The command terminates without any output.

@vince-fugnitto
Copy link
Member

@tsmaeder it should be done :)

@tsmaeder
Copy link
Contributor Author

@vince-fugnitto @paul-marechal still hitting the same 404 error as before, trying to do #12297. I'm at a complete loss here. Can we force verbosity somehow to tell us what the script is trying to do?

@vince-fugnitto
Copy link
Member

I'm wondering if we should include #12248 which should help during the build process, and not be called during lerna as we remove it from the prepare script. It should help with issues you were experiencing with playwright. As for verbosity we might want to check if lerna includes such an option.

@tsmaeder
Copy link
Contributor Author

I removed the line installing playwright from the script and it still fails with 404. I don't think that's the problem.

@tsmaeder
Copy link
Contributor Author

Looking at network traffic at the time I get the 404, the build seems to be interacting with npmjs.org. My suspicion is that I do not have the proper access to publish the theia packages.

@tsmaeder
Copy link
Contributor Author

Ping @vince-fugnitto could you check if I have the necessary access rights?

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

No branches or pull requests

4 participants