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

docs: add makefile improvement proposal #10188

Merged
merged 4 commits into from
Jun 21, 2023

Conversation

isubasinghe
Copy link
Member

@isubasinghe isubasinghe commented Dec 8, 2022

Signed-off-by: Isitha Subasinghe [email protected]

@isubasinghe isubasinghe force-pushed the makefile-improvement-proposal branch 5 times, most recently from 5c8a848 to 2b3d60e Compare December 8, 2022 03:42
@isubasinghe isubasinghe force-pushed the makefile-improvement-proposal branch from 2b3d60e to 9b56c65 Compare December 8, 2022 04:00
@isubasinghe isubasinghe requested a review from JPZ13 December 14, 2022 22:27
@stale
Copy link

stale bot commented Dec 31, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If this is a mentoring request, please provide an update here. Thank you for your contributions.

@stale stale bot added the problem/stale This has not had a response in some time label Dec 31, 2022
@rohankmr414
Copy link
Member

@isubasinghe I'd suggest we also try experimenting with Vagrant. It is used to spin up isolated development environments inside VMs or docker, the config for that will be stored in the repo in a file named Vagrantfile.

@stale stale bot removed the problem/stale This has not had a response in some time label Jan 6, 2023
@isubasinghe isubasinghe marked this pull request as ready for review January 11, 2023 21:41
docs/proposals/makefile-improvement-proposal.md Outdated Show resolved Hide resolved
docs/proposals/makefile-improvement-proposal.md Outdated Show resolved Hide resolved
docs/proposals/makefile-improvement-proposal.md Outdated Show resolved Hide resolved
docs/proposals/makefile-improvement-proposal.md Outdated Show resolved Hide resolved
@isubasinghe
Copy link
Member Author

Thanks for the review @caelan-io , addressed the feedback.

@alexec
Copy link
Contributor

alexec commented Feb 12, 2023

Getting started is a real issue. I think think the right solution, because we're on Github, it Codespace. Have you experimented with that?

@isubasinghe
Copy link
Member Author

@alexec I think that works as well but I think having Nix could be in addition to that to provide a better build experience on local machines.

I think I can get a Nix file up such that the dependencies we use will be the exact same for everyone, I don't think I even have to modify the Makefile for this. This alone should solve most of the issues I've had in the past with getting Argo Workflows running on Fedora.

Copy link
Contributor

@alexec alexec left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. I agree that the Makefile today is too complex. It has many options that are not used and could be simplified removed, e.g. KUBERNETES_NAMESPACE.
  2. Let's use DevContainers for the tooling. This is much more mature that it was 1 years ago and is now usable.
  3. Let's avoid any tools that are programatic in nature rather than declarative. They're always harder to understand, which results in a weaker eco-system, and less popularity and adoption. I've not heard of Nix or Devenv, but we already have a toolchain.

@isubasinghe if you're interested, I can list out the improvement we could make to the Makefile to reduce it complexity and rely more on the underlying tools.

I don't think we need PR for proposals to build tool chains. Let's open an issue instead.

@stale
Copy link

stale bot commented Mar 25, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If this is a mentoring request, please provide an update here. Thank you for your contributions.

@stale stale bot added the problem/stale This has not had a response in some time label Mar 25, 2023
@caelan-io caelan-io removed the problem/stale This has not had a response in some time label Mar 27, 2023
@caelan-io
Copy link
Member

caelan-io commented Mar 27, 2023

Thanks @alexec - yes if you're able to list out the improvements you have in mind, we can make the changes:

I can list out the improvement we could make to the Makefile to reduce it complexity and rely more on the underlying tools.

I don't think we need PR for proposals to build tool chains. Let's open an issue instead.

@isubasinghe opened this proposal at @sarabala1979 's request. Can we keep the discussion thread going here until we have another PR opened?

@isubasinghe
Copy link
Member Author

@juliev0 As a general comment, we can keep the Makefile, I suggest Nix as an additional option to make life easier for people who are not on OSX/Ubuntu or just want a reproducible build environment. I strongly believe the two can co-exist.

@isubasinghe
Copy link
Member Author

isubasinghe commented May 5, 2023

@isubasinghe I'd suggest we also try experimenting with Vagrant. It is used to spin up isolated development environments inside VMs or docker, the config for that will be stored in the repo in a file named Vagrantfile.

@rohankmr414 Sorry, I forgot to reply. But yeah I think we can have a look at this as well. I also think it might be trivial to create a VM image from this Nix file itself. See this https://github.com/nix-community/awesome-nix#virtualisation. It seems to support firecracker to run NixOS VM's

@juliev0
Copy link
Contributor

juliev0 commented May 5, 2023

I don't think we need PR for proposals to build tool chains. Let's open an issue instead.

@alexec Isitha opened up a PR for this proposal because it's more likely to get seen by more people and by folks like you than opening an Issue. Also, I had mentioned that this was the way to go. I was originally told to put the ArtifactGC proposal in this same directory. As I recall, this is what Argo CD is doing.

Also, Isitha opened up a PR for Nix. It sounds like it would address the big hurdles of devs getting started on non OSX/Ubuntu. And it sounds like it would not affect the current processes for those who want to use it. Any reason in that case not to merge it? I know you mentioned an alternative strategy, so if you feel that that should be put in place instead please provide the details. Thanks.

  1. I agree that the Makefile today is too complex. It has many options that are not used and could be simplified removed, e.g. KUBERNETES_NAMESPACE.
  2. Let's use DevContainers for the tooling. This is much more mature that it was 1 years ago and is now usable.
  3. Let's avoid any tools that are programatic in nature rather than declarative. They're always harder to understand, which results in a weaker eco-system, and less popularity and adoption. I've not heard of Nix or Devenv, but we already have a toolchain.

@isubasinghe if you're interested, I can list out the improvement we could make to the Makefile to reduce it complexity and rely more on the underlying tools.

Copy link
Member

@terrytangyuan terrytangyuan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One concern is that a lot of the commands seem to duplicate what's in Makefile. If we can somehow refactor that it would be great since this will double maintenance effort. An example: #10999 (comment)

@isubasinghe
Copy link
Member Author

One concern is that a lot of the commands seem to duplicate what's in Makefile. If we can somehow refactor that it would be great since this will double maintenance effort. An example: #10999 (comment)

This is very much intentional and a feature of nix, the build system is sealed from the rest of the environment. This is what gives us reproducible builds.

I agree that this increases maintenance effort, I offer three solutions for this:

  1. Sidestep this entirely and say Nix is an unofficial feature we support.
  2. Base the Makefile off the dependencies installed via Nix.
  3. The Makefile doesn't change at a dramatic pace, I can update the file whenever needed.

@stale
Copy link

stale bot commented Jun 18, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If this is a mentoring request, please provide an update here. Thank you for your contributions.

@stale stale bot added the problem/stale This has not had a response in some time label Jun 18, 2023
@JPZ13
Copy link
Member

JPZ13 commented Jun 21, 2023

Not stale

@stale stale bot removed the problem/stale This has not had a response in some time label Jun 21, 2023
@juliev0
Copy link
Contributor

juliev0 commented Jun 21, 2023

since we already merged the actual work, I can enable auto-merge for this

@juliev0 juliev0 enabled auto-merge (squash) June 21, 2023 15:45
@juliev0 juliev0 merged commit faf5f6d into argoproj:master Jun 21, 2023
tico24 pushed a commit to tico24/argo-workflows that referenced this pull request Jun 22, 2023
Signed-off-by: Isitha Subasinghe <[email protected]>
Signed-off-by: Julie Vogelman <[email protected]>
Co-authored-by: Julie Vogelman <[email protected]>
Signed-off-by: Tim Collins <[email protected]>
JPZ13 pushed a commit to pipekit/argo-workflows that referenced this pull request Jul 4, 2023
Signed-off-by: Isitha Subasinghe <[email protected]>
Signed-off-by: Julie Vogelman <[email protected]>
Co-authored-by: Julie Vogelman <[email protected]>
jeremyhager pushed a commit to jeremyhager/argo-workflows that referenced this pull request Jul 7, 2023
Signed-off-by: Isitha Subasinghe <[email protected]>
Signed-off-by: Julie Vogelman <[email protected]>
Co-authored-by: Julie Vogelman <[email protected]>
Signed-off-by: Jeremy Hager <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants