plugin package broken

Bug #1008876 reported by anatoly techtonik
40
This bug affects 14 people
Affects Status Importance Assigned to Milestone
hg-git (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

The plugin package doesn't work after installation. It doesn't work even after enabling plugin manually is user level .hgrc

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: mercurial-git 0.3.1-1ubuntu0.1
ProcVersionSignature: Ubuntu 3.2.0-24.39-generic-pae 3.2.16
Uname: Linux 3.2.0-24-generic-pae i686
NonfreeKernelModules: nvidia
ApportVersion: 2.0.1-0ubuntu8
Architecture: i386
Date: Tue Jun 5 10:46:42 2012
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Beta i386 (20120301)
PackageArchitecture: all
SourcePackage: hg-git
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
anatoly techtonik (techtonik) wrote :
Revision history for this message
fqj1994 (fqj1994) wrote :

Please refer to:
/usr/share/doc/mercurial-git/README.Debian
to enable it

The way to enable it is not like what is mentioned in hg-git.github.com

Please refer to
The readme document in:
/usr/share/doc/mercurial-git/README.Debian

thanks

Changed in hg-git (Ubuntu):
status: New → Invalid
Changed in hg-git (Ubuntu):
status: Invalid → New
Revision history for this message
anatoly techtonik (techtonik) wrote :

Let me raise a point. Plugins are things that work automatically or with a minimal manual intervention. Every plugin-enabled product has rules reflected in official documentation how to work with plugins. If the platform that distributes the product breaks this user level API - it shoud provide users with an interface that doesn't make their experience worse.

Requiring users a deep knowledge of the platform (not even Ubuntu, but Debian) to use high level package written in cross-platform language - is a very serious issue. And knowing a specific layout of Debian file system is the deep knowledge.

The appropriate workaround against this is to enable installed plugins automatically.

Revision history for this message
fqj1994 (fqj1994) wrote :

Hello,
I think the plugin should not be enabled by default.
Enabling it by default is a system-wide, because it may make users without permission difficult to disable it.
Users who need it should enabled it itself.

How do you think of adding a text notification telling users the way to enable it ?
Like this:
echo 'git extension for mercurial is disabled by default.'
echo 'You can follow the instructions in /usr/share/doc/mercurial-git/README.Debian to enable it.'

Revision history for this message
anatoly techtonik (techtonik) wrote :

There are two points:

1. No need in one more redirect - message should provide instructions itself

2. Where this message is be shown?

If users see the package is installed, but can not receive the message - it won't help. To propose anything it is critical to know why official way described on Mercurial site doesn't work with Ubuntu? Why Ubuntu choose to modify it in the first place breaking the instructions?

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in hg-git (Ubuntu):
status: New → Confirmed
Revision history for this message
fqj1994 (fqj1994) wrote :

1. we cannot enable plugins by default

please see the NEWS of mercurial 1.1.2-1

mercurial (1.1.2-1) unstable; urgency=low

  Since the 1.1.2-1 version, mercurial does not enable any extension by
  default anymore. Upstream asks us to do so because:
  - users can easily enable any extension if they wish, however they cannot
    disable a extension that have been enabled system-wide
  - upstream prefers that default Mercurial installation is the plain Mercurial
    without extension.

 -- Vincent Danjean <email address hidden> Sat, 17 Jan 2009 17:47:06 +0100

2.
The thing I can do is just add lines of text telling users when they're `apt-get/aptitude install mercurial-git`
just like hgsubversion
you can try `apt-get install hgsubversion`
there are two lines of text telling users that.

3.
Maybe we can blod/color the lines of text the emphasize it.

Revision history for this message
fqj1994 (fqj1994) wrote :

blod -> bold

Revision history for this message
fqj1994 (fqj1994) wrote :
Changed in hg-git (Ubuntu):
status: Confirmed → Invalid
Changed in hg-git (Ubuntu):
status: Invalid → New
Revision history for this message
anatoly techtonik (techtonik) wrote :

If you didn't noticed it is me who marked bug #666292 as a duplicate, so I obviously have SEEN it. ;)

If you feel that it contains some essential stuff that I've missed, then a quote that you find relevant and a link to original comment will be more useful. Now back on track. I add quotes, because it is hard to do this (track replies).

> fqj1994 replied
>> techtonik said
>> There are two points:
>> 1. No need in one more redirect - message should provide instructions itself

> 1. we cannot enable plugins by default

Is that thread hijacking or you just want to say that the first point is different? If it's the latter then - ok. I am fine that plugin will not be enabled by default and silently accepted that.

>> 2. Where this message is be shown?
> The thing I can do is just add lines of text telling users when they're `apt-get/aptitude install mercurial-git`
>> If users see the package is installed, but can not receive the message - it won't help.

Some (most) Linux installation are made by admins to servers, and it won't help if message is in bold or in color.

>> To propose anything it is critical to know why official way described on Mercurial site doesn't work with Ubuntu?
>> Why Ubuntu choose to modify it in the first place breaking the instructions?

Basically this bug is incomplete without answers to two questions:
2.2 Why official way described on Mercurial site doesn't work with Ubuntu (i.e. what is the technical reason)?
2.3 Why Ubuntu choose to modify it in the first place breaking the instructions (why Ubuntu did so)?

Revision history for this message
fqj1994 (fqj1994) wrote :

I have to redeclare that it is NOT a bug.

1. Why don't we enable it by default ?
I said : we cannot enable plugins by default.
and upstream also said we SHOULD NOT enable plugins by default.
I'm sorry for the improper use of the word "cannot" as I'm not an English native speaker. The "cannot" should be "SHOULD NOT"

2. Adding text notifications may work for some users
 a) if users install software itself using apt-get or aptitude, he can see the text and follow the instruction.
 b) if admins think all users should use it, admins can enable it manually system-wide
 c) if only some users (not admin) want to use it, he can ask admin to install it (and admin should tell the way to enable it in Debian based distros), and he can also install it in his own home directory and enable it manually (if the admin doesn't install for him)

3. Why Ubuntu choose to modify it in the first place breaking the instructions ?
I adopt the package from another maintainer. It's better for me not to change the behavior of a existed package with documentation saying the differences between Debian package and upstream, because users who has read the README will be confused.
If you want to know why the previous packager do that, please subscribe jwilk (Jakub Wilk). You needn't reopen the issue to subscribe him.

4. What if you don't like the way we do ?
You can package yourself, and make version be 999+XXX.XX. You will never upgrade to versions in our repositories.
But I don't suggest you to do so, because you may forget to upgrade and leave more important bugs existed.

Changed in hg-git (Ubuntu):
status: New → Invalid
Revision history for this message
JD Marble (midorikid-gmail) wrote :

This is a problem for me. I share my .hgrc across different systems. This is impossible if I have to use hgext.git= for Ubuntu and hggit= for every other platform. Is my problem a different bug or should this one be reopened? Is it something I should raise with the upstream maintainer?

Revision history for this message
Antti Kaihola (akaihola) wrote :

As a novice Mercurial user I was also surprised that the `hggit =` line mentioned at http://hg-git.github.com/ wouldn't enable the plugin, and I needed either `git =` or `hgext.git =` instead.

Revision history for this message
Yet Another Single Use Account, BLARGH! (max-bane) wrote :

fqj1994 (fqj1994) wrote on 2012-06-28:
> The way to enable it is not like what is mentioned in hg-git.github.com

THIS is clearly the bug. How can you possibly not see this? The Debian package for a python module should install that module under the same name that it is DESIGNED to have and DOCUMENTED to have upstream, and EXPECTED to have by anyone using its API.

The whole point of installing a python module named `foo' is that, once installed, Python code that does `import foo' should work as expected. If `apt-get install foo' installs the foo module as `baz' instead, that completely defeats the purpose of installing `foo', and breaks all code that tries to import foo!

The mercurial-git package is clearly BROKEN if it is installing a package named `hggit' as something else! The whole point of installing `hggit' is that code written to `import hggit' and use the hggit API should work unmodified! You've broken the advertised and documented API of the upstream project!

Revision history for this message
anatoly techtonik (techtonik) wrote :

I guess the best way is to open a new bug, summarize these points and start from scratch in 2016.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.