Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Please stop bundling third-party libraries #107

Closed
tarsius opened this Issue · 6 comments

2 participants

@tarsius

org2blog is mirrored on the Emacsmirror, which is a large up-to-date collection of Emacs packages.

As the maintainer of the mirror I am trying to resolve feature conflicts that result from one package bundling libraries from another package. I suspect in most cases these libraries were included so that users would not have to find, download and install each dependency manually.

Unfortunately bundling also has negative side-effects: if the bundled libraries are also installed separately, then it is undefined which version actually gets loaded when the respective feature is required.

Initially that isn't a big problem but in many cases upstream changes are not included or only after a long delay. This can be very confusing for users who are not aware that some of the installed packages bundle libraries which are also installed separately. In other cases bugs are fixed in the bundled versions but the fixes are never submitted to upstream.

Also now that Emacs contains the package.el package manager there is a better way to not require users to manually deal with dependencies: add the package (and when that hasn't been done yet the dependencies) to the Melpa package repository. If make is required to install your make you might want to add it to the el-get (another popular package manager) package repository instead.

Alternatively if you want to keep bundling these libraries please move them to a directory only containing bundled libraries and add the file ".nosearch" to that directory. You can then load the library using something like this:

(or (require 'bundled nil t)
    (let ((load-path
           (cons (expand-file-name "fallback-libs"
                                   (or load-file-name buffer-file-name)
                                   load-path))))
      (require 'bundled)))

Of course if your version differs from the upstream version this might not be enough in which case you should make an effort to get your changes merged upstream.

org2blog bundles at least the following libraries:

  • metaweblog

Best regards,
Jonas

@punchagan
Owner

@tarsius, thanks for writing with a detailed explanation. But, it looks like metaweblog doesn't have "an upstream", anywhere. I'm not sure how to get my changes merged upstream. All it has is an initial import on the emacsmirror. Do you have any suggestions on how to move forward?

Thanks,
Puneeth

@tarsius
@tarsius

I have added your changes to metaweblog to the repository on the Emacsmirror.
A pull request to remove it from this package will follow shortly.

@punchagan
Owner

Thanks @tarsius. Apologies for the delay in getting back to this.

@punchagan punchagan closed this
@tarsius

Thanks to you too.

@punchagan
Owner

@tarsius I've created a new repository for metaweblog at punchagan/metaweblog.el. Could you change the emacsmirror repository to be tracking that repository? Thanks!

@tarsius tarsius referenced this issue in emacsmirror/p
Closed

metaweblog now has an upstream repository #20

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.