Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Emacs dynamic modules (another "allow ignoring of errors" thread) #207

Open
seanfarley opened this issue Apr 13, 2021 · 3 comments
Open

Comments

@seanfarley
Copy link

I love @purcell's work (and would marry him if I could) but I find myself between a rock and a hard place. I'm writing an emacs dynamic module (think web browser) where certain keybindings make sense that aren't recommended (e.g. ESC). Is there a way to keep using this package or compromise?

I guess the larger issue is that we're using emacs is a new and exciting ways with modules that I don't know how to align with pure lisp packages.

Either way, thanks for the work you do, Steve!

@purcell
Copy link
Owner

purcell commented Apr 13, 2021

I love @purcell's work (and would marry him if I could)

You missed the boat on that one, sorry. 😁

Okay, so the issue here is that package-lint is - primarily - an opinionated tool to help review packages for MELPA purposes, and for package authors to pre-emptively perform some of that review themselves. Whether issues raised by the tool are considered blockers by the MELPA reviewers is still somewhat determined on a case-by-case basis. So that means it's hard to include package-lint in CI for cases where a MELPA reviewers says "X is okay" while package-lint says "X is bad": using the tool in CI is nonetheless desirable because it helps make sure new unrelated packaging issues don't show up over time.

Having given this some thought, I'm somewhat amenable to assigning each potential error class an ID, and allowing users to suppress/demote such errors, but it's important to me that all issues should be strictly checked for MELPA purposes.

I'm a little wary of the work involved, though, and the generally mixed message it sends about authors having free reign to decide what they care about. At the same time, it's nice to have error IDs because they can be linked to more descriptive text about the corresponding issue in a separate document, so I wonder if a good first step would be to assign error IDs in the existing code.

@seanfarley
Copy link
Author

You missed the boat on that one, sorry. 😁

Can't blame a guy for trying, though. I mean, I hear New Zealand is lovely. 😅

Okay, so the issue here is that package-lint is - primarily - an opinionated tool to help review packages for MELPA purposes, and for package authors to pre-emptively perform some of that review themselves. Whether issues raised by the tool are considered blockers by the MELPA reviewers is still somewhat determined on a case-by-case basis. So that means it's hard to include package-lint in CI for cases where a MELPA reviewers says "X is okay" while package-lint says "X is bad": using the tool in CI is nonetheless desirable because it helps make sure new unrelated packaging issues don't show up over time.

I empathize with this so much. Honestly, I don't know what to do because the goals are so different (MELPA packages vs dynamic modules). I 100% appreciate the "one and true way" to lint. On the other hand, I want everything (including my web browsing!) in emacs!

I guess this comment really isn't saying much, to be honest. Just that I like New Zealand and like your work!

@purcell
Copy link
Owner

purcell commented Apr 13, 2021

Haha, fair enough! 🤗

Note largely to self: a crude extension mechanism would involve supporting a package-lint-errors-filter-function custom var which the user could set in order to suppress (or perhaps change the level of) errors by inspecting their message.

mmitch added a commit to mmitch/ox-s9y that referenced this issue Apr 16, 2021
## background information

package-lint tries to flag anything that can be a problem with MELPA
package.  It is not intended to be a generic CI tool and thus it can't
(yet) skip single issues.
see purcell/package-lint#207

## what happened

The monthly ox-s9y builds started failing with
package-lint-20210326.241, resulting in
```
ox-s9y.el:72:0: error: "org-export-s9y" doesn't start with package's
prefix "ox-s9y".
```

## analysis

`org-export-s9y` refers to the configuration group and the name indeed
different from out package name.  package-lint has any right to throw
an error.

BUT in this case it is ok: In the org-mode source, every exporter that
has configuration options does the same: a filename `ox-ABC.el` has
the configuration group `org-export-ABC` (`ox` is an abbreviation of
`org-export`).

`ox-s9y` wants to keep in line with the org-mode naming conventions so
that its configuration options show up next to the other org-export
groups.

## solution

Use a quick and dirty hack to rename the configuration option before
running package-lint.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants