Bug#988188: Ignoring but #987904 for Bullseye: horizon plugin packaging design mistake

2021-06-21 Thread Sebastian Ramacher
On 2021-05-20 08:51:00 +0200, Thomas Goirand wrote:
> On 5/19/21 9:21 PM, Sebastian Ramacher wrote:
> > Control: tags -1 moreinfo
> > 
> > On 2021-05-07 10:56:51 +0200, Thomas Goirand wrote:
> >> Package: release.debian.org
> >> Severity: normal
> >>
> >> Hi,
> >>
> >> I need to discuss with the release team what to do in order to address
> >> this bug: https://bugs.debian.org/987904
> >>
> >> What happens is that each Horizon plugin is installing a bunch of python
> >> files under /etc/openstack-dashboard/enable.
> >>
> >> When an Horizon plugin is removed, as the enable folder is in /etc, the
> >> enable files of the plugins aren't removed. As a consequence, whenever
> >> Horizon attemps to list its plugins (for example, when it tries to do a
> >> "collect static" operation, which is kind of compiling all the JS files
> >> into a single one, each time a plugin is added/removed or when Horizon
> >> upgrades), it just fails, because the files in the enable folder are
> >> referencing Python modules that do not exist anymore (since the plugin
> >> package has been removed).
> >>
> >> The solution to fix this is strait forward: replace our symlink in
> >> /usr/lib/python3/dist-packages/openstack_dashboard/enable by a folder,
> >> and push the enable files in there instead of /etc. This way, the plugins
> >> removal will also remove the enable files.
> >>
> >> The problem is that there are 20 Horizon plugins in Debian, and at this
> >> point in the release cycle, it doesn't feel like it is a good time to
> >> update 20 packages.
> > 
> > Maybe I am missing some of the context, but it appears to me that in
> > if the case the plugin package was removed but not purged, a
> > ModuleNotFoundError is raised. So, wouldn't it be sufficient for horizon
> > to ignore those plugins that raise a ModuleNotFoundError?
> > 
> > Cheers
> 
> Hi Sebastian,
> 
> Thanks for your answer in this bug, I was desperate for an answer! :)
> 
> I tried to do as Andreas suggested, and then it fails later on, the code
> is harder to understand than just this.
> 
> At this point, I've been able to stage the fix in Experimental, and I am
> confident that I can backport the fixes to unstable. It's just a large
> amount of packages to patch, but I'm confident I can do it.
> 
> Your thoughts?

Sorry for slacking on a reply. If you still feel that you can do that
before the full freeze, please go ahead.

Cheers
-- 
Sebastian Ramacher


signature.asc
Description: PGP signature


Bug#988188: Ignoring but #987904 for Bullseye: horizon plugin packaging design mistake

2021-05-20 Thread Thomas Goirand
On 5/19/21 9:21 PM, Sebastian Ramacher wrote:
> Control: tags -1 moreinfo
> 
> On 2021-05-07 10:56:51 +0200, Thomas Goirand wrote:
>> Package: release.debian.org
>> Severity: normal
>>
>> Hi,
>>
>> I need to discuss with the release team what to do in order to address
>> this bug: https://bugs.debian.org/987904
>>
>> What happens is that each Horizon plugin is installing a bunch of python
>> files under /etc/openstack-dashboard/enable.
>>
>> When an Horizon plugin is removed, as the enable folder is in /etc, the
>> enable files of the plugins aren't removed. As a consequence, whenever
>> Horizon attemps to list its plugins (for example, when it tries to do a
>> "collect static" operation, which is kind of compiling all the JS files
>> into a single one, each time a plugin is added/removed or when Horizon
>> upgrades), it just fails, because the files in the enable folder are
>> referencing Python modules that do not exist anymore (since the plugin
>> package has been removed).
>>
>> The solution to fix this is strait forward: replace our symlink in
>> /usr/lib/python3/dist-packages/openstack_dashboard/enable by a folder,
>> and push the enable files in there instead of /etc. This way, the plugins
>> removal will also remove the enable files.
>>
>> The problem is that there are 20 Horizon plugins in Debian, and at this
>> point in the release cycle, it doesn't feel like it is a good time to
>> update 20 packages.
> 
> Maybe I am missing some of the context, but it appears to me that in
> if the case the plugin package was removed but not purged, a
> ModuleNotFoundError is raised. So, wouldn't it be sufficient for horizon
> to ignore those plugins that raise a ModuleNotFoundError?
> 
> Cheers

Hi Sebastian,

Thanks for your answer in this bug, I was desperate for an answer! :)

I tried to do as Andreas suggested, and then it fails later on, the code
is harder to understand than just this.

At this point, I've been able to stage the fix in Experimental, and I am
confident that I can backport the fixes to unstable. It's just a large
amount of packages to patch, but I'm confident I can do it.

Your thoughts?

Cheers,

Thomas Goirand



Bug#988188: Ignoring but #987904 for Bullseye: horizon plugin packaging design mistake

2021-05-19 Thread Sebastian Ramacher
Control: tags -1 moreinfo

On 2021-05-07 10:56:51 +0200, Thomas Goirand wrote:
> Package: release.debian.org
> Severity: normal
> 
> Hi,
> 
> I need to discuss with the release team what to do in order to address
> this bug: https://bugs.debian.org/987904
> 
> What happens is that each Horizon plugin is installing a bunch of python
> files under /etc/openstack-dashboard/enable.
> 
> When an Horizon plugin is removed, as the enable folder is in /etc, the
> enable files of the plugins aren't removed. As a consequence, whenever
> Horizon attemps to list its plugins (for example, when it tries to do a
> "collect static" operation, which is kind of compiling all the JS files
> into a single one, each time a plugin is added/removed or when Horizon
> upgrades), it just fails, because the files in the enable folder are
> referencing Python modules that do not exist anymore (since the plugin
> package has been removed).
> 
> The solution to fix this is strait forward: replace our symlink in
> /usr/lib/python3/dist-packages/openstack_dashboard/enable by a folder,
> and push the enable files in there instead of /etc. This way, the plugins
> removal will also remove the enable files.
> 
> The problem is that there are 20 Horizon plugins in Debian, and at this
> point in the release cycle, it doesn't feel like it is a good time to
> update 20 packages.

Maybe I am missing some of the context, but it appears to me that in
if the case the plugin package was removed but not purged, a
ModuleNotFoundError is raised. So, wouldn't it be sufficient for horizon
to ignore those plugins that raise a ModuleNotFoundError?

Cheers

> 
> So in my point of view, what we can do now is:
> - tag #987904 as bullseye-ignore
> - add a warning in the release notes that Horizon plugins should never
> be just removed, but should be *purged*, to avoid the problem
> 
> In the mean while, I'll fix the Horizon packaging in Experimental, and
> see how it goes.
> 
> Dear release team, please let share your view on this bug.
> I remain available if you need more explanations.
> 
> Cheers,
> 
> Thomas Goirand (zigo)
> 

-- 
Sebastian Ramacher


signature.asc
Description: PGP signature


Bug#988188: Ignoring but #987904 for Bullseye: horizon plugin packaging design mistake

2021-05-07 Thread Thomas Goirand
Package: release.debian.org
Severity: normal

Hi,

I need to discuss with the release team what to do in order to address
this bug: https://bugs.debian.org/987904

What happens is that each Horizon plugin is installing a bunch of python
files under /etc/openstack-dashboard/enable.

When an Horizon plugin is removed, as the enable folder is in /etc, the
enable files of the plugins aren't removed. As a consequence, whenever
Horizon attemps to list its plugins (for example, when it tries to do a
"collect static" operation, which is kind of compiling all the JS files
into a single one, each time a plugin is added/removed or when Horizon
upgrades), it just fails, because the files in the enable folder are
referencing Python modules that do not exist anymore (since the plugin
package has been removed).

The solution to fix this is strait forward: replace our symlink in
/usr/lib/python3/dist-packages/openstack_dashboard/enable by a folder,
and push the enable files in there instead of /etc. This way, the plugins
removal will also remove the enable files.

The problem is that there are 20 Horizon plugins in Debian, and at this
point in the release cycle, it doesn't feel like it is a good time to
update 20 packages.

So in my point of view, what we can do now is:
- tag #987904 as bullseye-ignore
- add a warning in the release notes that Horizon plugins should never
be just removed, but should be *purged*, to avoid the problem

In the mean while, I'll fix the Horizon packaging in Experimental, and
see how it goes.

Dear release team, please let share your view on this bug.
I remain available if you need more explanations.

Cheers,

Thomas Goirand (zigo)