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

Update MacOS GitLab CI/CD configuration by 31st May #528

Closed
3 of 4 tasks
CMCDragonkai opened this issue May 18, 2023 · 14 comments · Fixed by #529
Closed
3 of 4 tasks

Update MacOS GitLab CI/CD configuration by 31st May #528

CMCDragonkai opened this issue May 18, 2023 · 14 comments · Fixed by #529
Assignees
Labels
procedure Action that must be executed r&d:polykey:supporting activity Supporting core activity

Comments

@CMCDragonkai
Copy link
Member

CMCDragonkai commented May 18, 2023

The beta macos machines will be deprecated by 31st May and from then it will be running on the M1 architecture, and will require us to have premium subscription to GitLab again.

See:

Note that if we were to go towards full cross-compilation we may avoid this. But since we have other code like js-db and later that may still use node-gyp we're going to need it anyway.

Do note that M1 and x64 macos is capable of cross compiling architectures. We don't bother with the universal binary cause it's not needed, we are able to publish separate optional packages atm. That way lipo is avoided. That does mean though... when distributing PK, we have to distribute an M1 version and a x64 version. The x64 versions are likely to be deprecated in the following years.

Tasks

  • 1. Use saas-macos-medium-m1 as the tag.
  • 2. Use macos-12-xcode-14 as the image.
  • 3. Make sure to update the systeminformation to 5.18.5 if it is being used in benchmarking
  • 4. Test that build still works fine on M1
@CMCDragonkai CMCDragonkai added the procedure Action that must be executed label May 18, 2023
@CMCDragonkai
Copy link
Member Author

I've switched over in js-async-cancellable. However since we aren't on premium package atm, it's not working. So for now we will just have disable macos jobs while we proceed.

@tegefaulkes beware of this for PK @amydevs

Just disable the macos jobs for what you're doing atm.

@CMCDragonkai
Copy link
Member Author

This is now doable. Everybody must update their repos with this.

@tegefaulkes
Copy link
Contributor

Updated for js-quic.

@CMCDragonkai
Copy link
Member Author

When updating to the new macos, for the macos jobs to work when benchmarks are used, we need to update to 5.18.5.

See: MatrixAI/js-db#64 (comment)

So if there are benchmarks and systeminformation exists, then we need to add it in.

@CMCDragonkai
Copy link
Member Author

I've done this for js-db and released 5.2.0 for now with the latest libraries.

@CMCDragonkai
Copy link
Member Author

I'm going to move this issue to Polykey since it's about all libraries.

@CMCDragonkai
Copy link
Member Author

MatrixAI/js-db#63 introduces the ability to separate packages into optional packages for js-db. The js-quic is the first one to do it. But the rust toolchain is alot better than the node-gyp toolchain. So it does require some work, however this is not that important atm. So I'm putting it on hold.

@CMCDragonkai
Copy link
Member Author

Another thing I forgot. Make sure your scripts/*.sh and scripts/*.ps1 are executable. Use chmod u+x. Otherwise it will fail.

@CMCDragonkai
Copy link
Member Author

I've done all the libraries except:

  1. js-async-monitor - there's some issue with the tests
  2. js-contexts - I want to add in the literal timer before continuing
  3. TypeScript-Demo-Lib - this one is pending

Otherwise things to verify include:

  1. js-quic
  2. js-mdns

And of course finally integration into Polykey. It needs to also address the above with all the updated libraries.

Keep in mind there may be some implementation detail changes which could affect the usage. Like EFS's lifecycle management, and the locks supporting ctx, and the DBTransaction.lock types may not match anymore especially since we don't take a literal number for timeout but it has to be wrapped up in a ctx object.

@CMCDragonkai
Copy link
Member Author

Ok TypeScript-Demo-Lib is pending other issues. Async monitor is not really important, won't bother solving that.

Will focus on js-contexts to finish that up. And then we can track js-quic and js-mdns and Polykey.

@CMCDragonkai
Copy link
Member Author

CMCDragonkai commented Jun 28, 2023

The js-contexts is done with 1.1.0. It will be released in this PR: MatrixAI/js-contexts#3

@CMCDragonkai
Copy link
Member Author

Done in js-mdns for now. Will need to release this.

Last thing left is this project itself.

Due to issues with TypeScript-Demo-Lib with pkg, the same issues will occur here with PK too. So we need to beware of this when packaging @tegefaulkes

@tegefaulkes
Copy link
Contributor

Done for Polykey.

@CMCDragonkai
Copy link
Member Author

Remember to tick off the tasks above.

@CMCDragonkai CMCDragonkai added the r&d:polykey:supporting activity Supporting core activity label Jul 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
procedure Action that must be executed r&d:polykey:supporting activity Supporting core activity
Development

Successfully merging a pull request may close this issue.

3 participants