What file extension for the new plugin package format?

The next release will add support for the plugin package format, to make it easier to distribute plugins. It's simply the "dist" folder in a tar archive.

I'm not sure what file extension to pick for it though - so far I'm thinking of using ".jpl", as in Joplin PLugin but it doesn't sound as nice as "jex" for example. What do you think? Do you have any suggestion on what file extension we could use?

While I think small extensions sound cool, they're relics of a time where there was reasons to demand smaller extensions, actual name string size limitations, path length limitations, smaller monitors, being stuck in terminals with only 80 characters width, and an abundance of choice that wouldn't conflict with anything else.

Aside from looking unconventional, is there any reason to not use something like ".joplin_plugin", it's absolutely clear at a glance what it is. (Edit: my friend provided this link that shows this isn't too obscure like some readers might think, https://fileinfo.com/filetypes/plugin, long extensions like this are used by other big tools like Adobe, Apple's XCode, Sublime, etc)

Otherwise is it worth not actually just using .tar? A lot of software uses custom extensions for otherwise typically compressed folders, .deb .jar .epub etc, and it makes it a hinderance to tell someone how they could for example normally right click them and open them in an archive manager tool, but instead there's extra steps of figuring out what kind of file it is, and it kind of just imposes some artificial confusion that there's more going on than there actually is and I don't see the point, if it walks like a duck and quacks like a duck, it's a tarfile

The main purpose of an extension is to identify the file type and in some case to add support for system handlers, like double-clicking on a file to open it in Joplin. That's only possible with custom extensions. Having it as a .tar might be confusing because people will logically think they need to unpack it first, while they should leave it as it is.

Using a longer extension like "joplin_plugin" I don't know, I'm not a big fan of it.

Integration with system handlers is a good point and it does destroy .tar. Perhaps something like .tar.jpl but then users might rename it (E.G, Windows were seeing .tar.gz type extensions isn't common).

My main concern with .jpl is it frankly sounds too much like GPL and depending on accent might be hard to distinguish the two. The only other reasonable alternative I'd have though is .jplug or .jext if extension and plugin were symonious enough.

I think .jpl is more than ok. IMO it is not too similar to JEX, but rather consistent with JEX.

Joplin EXport
Joplin PLugin

If we want to be consistent and not type a short story for an extension, we should go with .jpl

What's underneath is a different story. Whether it's tar, zip, or whatever, it should support symlinks and keep permissions intact. Although maybe permissions are not that important, since we should only need to read those files.


I think that .jpl does not work quite like .jex is only because you cannot "say" the extension as a word. However I'm not sure that it matters that much as users are probably less likely to have to deal with plugin files (once put in place) than with jex files.

If you do not like longer extensions like .joplin_plugin why not just contract it to .jplugin (a "jay-plugin")?. Whilst I actually agree with @tessus about not using a "short story for an extension" , this sort of format does allow scope for use with any possible future developments such as .jtheme, .j<insert_short_function_name_here>, etc.

Hmm, sort of. But there's not much difference to "jay-plugin".
At least for me it makes no difference saying that or "jay-pee-el".

On the other side I'm not sure why I would say that word anyway. I'd more likely say "(Joplin) plugin package file" when I talked about it. But for writing I'd use the extension....

Fair point. I was just making a reference to @laurent's earlier comment

... but it doesn't sound as nice as "jex" for example.

As long as it's as unique as possible I dont mind what it is. I think there has been a trend to using longer extension names just to ensure that there is no "clash" if clicking on the file is supposed to trigger an action. For instance a finance program called MoneyDance uses the .md extension which can create a fun time when installed on a system also used for Markdown editing! So I suppose Joplin PluGin (.jpg) is probably best avoided :slight_smile:


Thanks for the feedback everyone. Looks like there's no significantly better choice than .jpl so let's go with it then. Indeed once we have some kind of distribution system in place users won't see this extension much anyway.


Just did a short search for .jpl file extensions and it seems that there is almost nobody using it yet. Seems like good choice :+1: