BZR_PLUGIN_PATH should give full control on plugin directories
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
Medium
|
Vincent Ladeuil |
Bug Description
And we should change the way we handle it internally.
The actual definition of the PATH used for searching plugins is:
1 ) BZR_PLUGIN_PATH if set, otherwise is $BZR_HOME/plugins
2) append bzrlib/plugins (same intent on windows but done a bit differently)
3) append system-wide installed plugins defined as the arch-less directory
These definition doesn't give a full control to the user nor the packager, since 2 and 3 can't be changed (except with --no-plugins but that doesn't cover all needs :).
If 2) and 3) where set by the distributions in BZR_PLUGIN_PATH, that would:
- address or provide a way to address bugs #316192, bug #145612, bug #82693 and bug #129298
- allows user to more easily control what plugins are taken into account for special runs (selftest in botnet slaves is the use case that prompted me to file that bug)
I'm not sure many users found a good use for BZR_PLUGIN_PATH so far but a simple transition plan may be to just change the default value for BZR_PLUGIN_PATH to include 2) and 3).
Related branches
- John A Meinel: Approve
- Diff: 535 lines
- Vincent Ladeuil: Approve
-
Diff: 31 lines (+4/-4)2 files modifiedbzrlib/lazy_regex.py (+3/-3)
doc/en/release-notes/bzr-2.7.txt (+1/-1)
Changed in bzr: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
Changed in bzr: | |
assignee: | nobody → Vincent Ladeuil (vila) |
status: | Confirmed → In Progress |
summary: |
- BZR_PLUGIN_PATH should be set by distributions + BZR_PLUGIN_PATH should give full control on plugin directories |
Changed in bzr: | |
milestone: | none → 2.1 |
status: | Fix Committed → Fix Released |
Changed in bzr: | |
milestone: | 2.1.0 → 2.1b1 |
I don't think distributions should be setting an environment variable as the recommended way to set this up.
I think we can come up with ways to have plugin paths that include both system-wide and user-specific location that the user has some control over.
In all cases, though, I would recommend simplifying the setup as much as we can, rather than complicating everything.
There was also a discussion about having a specific plugin enable/disable flags in config settings, which might alleviate some of this.