-
Notifications
You must be signed in to change notification settings - Fork 146
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
[PR196 3/3] Adding support for partial workspace cleaning #293
Conversation
30d54ab
to
5608ea8
Compare
f1d9496
to
b6c186d
Compare
@jbohren I have some questions about the design goals stated in the OP, I'll try to address them inline:
These are files with a list of files installed to either the devel space or install space respectively or are they If the former, then why are they in a subfolder
I assume this means the build logs? Why move them from the build space? (I thought the build space was quite an appropriate place for the logs)
Is that in a single file or some other organization scheme? |
Why not fall back to the default |
Can you elaborate on this more (bullet list of steps for the process)? You mean Python |
That's all the questions I have so far. I'm going to start using it and testing it out locally. Btw, this needs to be rebased against master to be mergeable. |
It is the former, these are like CMake
The build space was an appropriate place for the logs when the
That's a single file called
That could also be an appropriate place. It depends on whether you want the devel space to continue to work if the build space is removed.
The job factories are registered along with build job factories like so: These are gathered in the
This is used to generate the asciicasts for the new documetation with colored output without having to put |
If the plan is to potentially put other package specific stuff there in the future, then that's probably ok.
The clean logs use case is a compelling reason to not put them in the build space, but I worry that putting them in the What if we just put logs in a top level logs folder like we have for build, devel and install? It could still contain a folder hierarchy with profile names in the mix. For example:
And then either logs can get a suffix for each profile (like the build, devel, etc.) or it can be subdivided internally by profile and then package?
Is that common? Maybe, but they could always specify the devel space root if they wanted it out of build. I'm not sure what the preferable default case would be, but I'm leaning towards the build space since it doesn't introduce a new folder and concept into the mix.
I see, I thought you meant the actual instances of jobs, you just mean the specialization of clean for a particular build type.
Ok, so long as there was a reason. Sounds good to me. Thanks for answering all my questions. |
5073cec
to
d29c21b
Compare
@jbohren I rebased against master and force pushed. |
Some usability notes:
|
I just ran into this problem:
The scenario was that I had an indigo desktop full workspace with everything built and configured to do the linked devel space. |
Yeah, we should get rid of the
+1
+1
And it should.
Yeah, currently prebuild packages are built directly into the devel space, but really they should be linked just like the others.
+1
Maybe in the future. |
… into pre-0.4.0-clean-pkgs
|
||
# Check for all profiles option | ||
if opts.all_profiles: | ||
profiles = get_profile_names(workspace_path) |
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.
Neither get_profile_names
nor workspace_path
is defined here.
I made a few clean up commits. |
all_succeeded = run_until_complete(ej) | ||
except Exception: | ||
status_thread.keep_running = False | ||
all_succeeded = False |
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.
all_succeeded
doesn't appear to be used. Should it be? If not please remove it.
@jbohren the tool seems to work as expected to me. I think it would be best if you could comment on the few places I mentioned something in line and then merge this. We can follow up with new problems and UX problems in new issues against the master branch as we prepare for the 0.4 release. |
… the workspace root (keep people from accidentally blowing away their system prefix)
…in_tools into pre-0.4.0-clean-pkgs
@wjwwood I resolved the unused / missing elements you mentioned, and fixed the inconsistency that @NikolausDemmel mentioned. Something else I did was replace the This should be good to merge, I'll update the documentation, and then I'll draft a call for testing / RFC that we can send out to ros-users. |
@jbohren Thanks for the quick turn around. The changes look good to me, but the CI is failing. I'll test out the new CLI options in the meantime. If things look ok (and CI is passing) I'll merge. |
1509cc3
to
13aa6e5
Compare
@wjwwood All tests passing. |
Yup, I was just looking over it again. LGTM |
🎉 |
- regenerating examples and cli interfaces - switching all text to sentence-per-line - adding scripts and documentation for regenerating examples - moving --locate-extra-shell-verbs to locate verb - adding details on linked develspace
- regenerating examples and cli interfaces - switching all text to sentence-per-line - adding scripts and documentation for regenerating examples - moving --locate-extra-shell-verbs to locate verb - adding details on linked develspace
This PR continues the refactoring of contributions from #196. It adds support for partial workspace cleaning, which takes advantage of the linked devel space pattern.
It varies slightly from the implementation in #196, and reorganizes some under-the-hood elements of
catkin_tools
:WS_ROOT/.catkin_tools/PROFILE/packages/PKG/
WS_ROOT/.catkin_tools/PROFILE/logs/PKG/
WS_ROOT/.catkin_tools/PROFILE/
DEVEL_SPACE/.private/PKG/
Additionally, it includes the following changes:
--dry-run
prints out each file / directory which is to be unlinked or removedCATKIN_TOOLS_FORCE_COLOR
environment variable (this is to support [PR196 *] Adding documentation for forthcoming changes in 0.4.0 #250)skipped
messagesTasks:
--depends-on
behavior #212profiles
metadata subdirclean --deps
option to--dependencies
catkin clean catkin
doesn't work -- build catkin into private devel space--deinit
respect--dry-run
(and other actions)--dry-run
clearer--all
option--orphans
bugclean
also clean logs--deinit
also clean spacesFull CLI interface: