-
-
Notifications
You must be signed in to change notification settings - Fork 51
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
New build --stop-after
#1573
New build --stop-after
#1573
Conversation
.New_Line | ||
.Append (TTY.Bold ("Build stages")) | ||
.New_Line | ||
.Append ("Instead of a full build, the process can be stopped early " |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe explain when this could be useful. This is a debug tool, and people who are not experts may be in bad situations after using it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added an explanation after the steps, and a clarification that a regular alr build
should leave things as intended.
src/alire/alire-builds.ads
Outdated
@@ -27,6 +27,29 @@ package Alire.Builds is | |||
-- many more shared releases in the vault, finding toolchains could take | |||
-- much more time, hence the separate storage. | |||
|
|||
type Build_Stages is |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a nice process for builds, but I see it is separate from how the code will run.
We may add new stages that will not be added to this enum, and vice versa.
Maybe we can have it more explicit with a loop like this:
for Stage in Build_Stages loop
case Stage is
when Sync =>
when Generation =>
- Etc,
end loop;
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I understand what you mean, but not the implementation detail. What is that loop intended to replace?
Maybe the enum can be renamed to Stopping_Points
as to make explicit what they are intended to be used for.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe that's an oversimplification of the build process on my part, and the different steps in the build are probably spread across different locations in the code.
Maybe the enum can be renamed to
Stopping_Points
as to make explicit what they are intended to be used for.
Indeed that would probably be better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I see. Yes, it's not as clear-cut as that, as there's some recursion involved through the dependency tree. I'll change the name then.
This allows stopping the build process at different points, which may help in debugging actions, ensuring up-to-date config without requiring updating dependencies nor building, etc.
Fixes #1544