Draft: Add Rust as one of the default plugins.
What does this merge request do and why?
Adds Rust as one of our default plugins for gdk
. This change does not require Rust to be installed right now (or a specific default version), but allows us to eventually add rust
as a dependency to the gitlab
repo. This is part of the effort described here gitlab#381569 (closed).
Fixes #1588 (closed)
Merge request checklist
-
This change is backward compatible. If not, please include steps to communicate to our users. -
Tests added for new functionality. If not, please raise an issue to follow-up. -
Documentation added/updated, if needed. -
gdk doctor
test added, if needed. -
Add the ~highlight
label if this MR should be included in theCHANGELOG.md
.
Merge request reports
Activity
added Category:GDK Engineering Productivity Quality labels
assigned to @lamportsapprentice
Reviewer roulette
Changes that require review have been detected! A merge request is normally reviewed by both a reviewer and a maintainer in its primary category and by a maintainer in all other categories.
To spread load more evenly across eligible reviewers, Danger has picked a candidate for each review slot. Feel free to override these selections if you think someone else would be better-suited or use the GitLab Review Workload Dashboard to find other available reviewers.
To read more on how to use the reviewer roulette, please take a look at the Engineering workflow and code review guidelines. Please consider assigning a reviewer or maintainer who is a domain expert in the area of the merge request.
Once you've decided who will review this merge request, mention them as you normally would! Danger does not automatically notify them for you.
Category Reviewer Maintainer documentation Jon Glassman (
@jglassman1
) (UTC+0)Marcel Amirault (
@marcel.amirault
) (UTC+9)If needed, you can retry the
danger-review
job that generated this comment.Generated by
Danger- Resolved by 🤖 GitLab Bot 🤖
Proper labels assigned to this merge request. Please ignore me.
@lamportsapprentice - please see the following guidance and update this merge request.1 Error Please add typebug typefeature, or typemaintenance label to this merge request. Edited by 🤖 GitLab Bot 🤖
added typefeature label
@jglassman1 Could you chime in as a reviewer? I wouldn't mind getting some early feedback here.
Edited by Hannes Moseradded gdk-usability label
added featureaddition label
requested review from @jglassman1
added Technical Writing label
added docs-only label
added docsimprovement label
@lamportsapprentice LGTM. Tagging @marcel.amirault for maintainer review
@jglassman1 Thanks!
@lamportsapprentice While the docs are fine, I think it's too early to merge this. The MR that adds rust to the toolchain is gitlab!104086 (merged), and it has not been reviewed or merged. If we merge this now, the docs would be inaccurate.
I've set this MR as dependent on that one, and as soon as gitlab!104086 (merged) merges, please assign this MR back to me and I'll get it merged for you, WDYT?
@marcel.amirault I actually thought about it the other way around. I wanted to add the
asdf
changes ingdk
first, and then enable support specifically in a single repo (gitlab
). I am fine with either though.@lamportsapprentice In that case, I think you would need to add it to https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/.tool-versions-gdk (preferable in this MR), and then we'd get an engineer like
@ashmckenzie
to review that proposed change.@marcel.amirault Ah ok. My interpretation of this file was that it forces the tool to be available under all circumstances. Is this not correct? I thought we might want to gradually opt in (being conservative), but maybe @ashmckenzie corrects me here :-)
@lamportsapprentice Ahh, because you are adding rust to the list introduced with
The GDK currently leverages the following `asdf` plugins:
, I assumed that you wanted it immediately available through asdf (by runningasdf install
). If you want to gradually opt in to it, I'm not sure what the process would be. Let's wait for Ash to see what our options are.Edited by Marcel AmiraultThanks all for the great collab so far
The https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/asdf.md#tool-versions-file section really should be trimmed down to just one example and perhaps a made up package so as to not confuse and also not become outdated, as it has already. We should probably remove the list of plugins we use currently in favour of pointing to https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/.tool-versions instead.Let me explain how the GDK, asdf and the GitLab project all work together which I feel will clear up a few things. It's documented at https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/asdf.md#how-gdk-manages-the-tool-versions-file, but let's expand a bit:
- The GDK is the main tool to install and update a full GitLab instance locally (
gitlab-org/gitlab
and other projects are included) - As part of the install process, the GDK manages installing dependent third-party software such as Ruby, Node.js, PostgreSQL and others
- We use https://github.com/asdf-vm/asdf to handle installing this software, mainly because it's cross platform and has lots of plugin support
- For the GDK to accurately understand the dependent third-party software it needs to install (for itself,
gitlab-org/gitlab
and other projects), it relies on https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/.tool-versions - https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/.tool-versions is checked in but is updated via the https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/support/asdf-combine tool, which examines https://gitlab.com/gitlab-org/gitlab/-/blob/master/.tool-versions (and others) and boils down the list of software to install into one single file
There are shortcomings with having a checked in
.tool-versions
file, which we are discussing over at #1595 which ties in here.At this stage, let's not update the GDK at the moment while I work on updating the GDK to support installing 'optional' asdf software, which I talk about at gitlab!104086 (diffs, comment 1173753020) and will soon paste in a WIP MR to demonstrate what I'm thinking
- The GDK is the main tool to install and update a full GitLab instance locally (
!2819 (closed) is what I'm thinking.
The https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/asdf.md#tool-versions-file section really should be trimmed down to just one example and perhaps a made up package so as to not confuse and also not become outdated, as it has already. We should probably remove the list of plugins we use currently in favour of pointing to https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/.tool-versions instead.
I am happy to do a doc update in this MR if everyone is fine with that.
At this stage, let's not update the GDK at the moment while I work on updating the GDK to support installing 'optional' asdf software, which I talk about at gitlab!104086 (diffs, comment 1173753020) and will soon paste in a WIP MR to demonstrate what I'm thinking
Thanks a lot @ashmckenzie. I just want to add that the tool is optional for now, but is required as soon as we add a gem that needs to be built from sources and where the source is written in Rust. I will respond in the other MR.
Edited by Hannes MoserThanks @lamportsapprentice, based on gitlab!104086 (comment 1183800337), am hoping it's OK if we close this MR? I'll create an MR to update this doc to strip it back so it doesn't mention specific software and versions given it can change quite quickly and become outdated.
requested review from @marcel.amirault and removed review request for @jglassman1
mentioned in merge request gitlab!104086 (merged)
removed review request for @marcel.amirault
requested review from @lamportsapprentice
requested review from @ashmckenzie
mentioned in merge request !2830 (merged)