scel icon indicating copy to clipboard operation
scel copied to clipboard

changes for MELPA compatibility

Open zzkt opened this issue 2 years ago • 15 comments

These changes should provide a reasonable basis for adding sclang to MELPA in line with their PR requirements.

The changes are mostly superficial as suggested by checkdoc, lint-package and eldev. They do not add any new functionality and include things like new docstrings for functions, replacing obsolete stuff, formatting changes, and so on.

There are a few things to note...

  • including w3m as a dependency for the help browser will raise the minimum required emacs version to 27.1
  • the regex linter from eldev gives a few warnings for sclang-language.el(details at https://github.com/zzkt/scel/issues/2) so probably doesn't work as expected and fully automated linting for CI isn't really useful at the moment.
  • some of the docstrings might not be accurate or need further clarification (but shouldn't block things)
  • in some places the existing code probably doesn't do what is expected (which could block things)
  • i've generally left existing code unchanged, so will add new issues before making any more substantial changes.
  • bumped version to sclang 1.1.0

etc

zzkt avatar Aug 02 '22 12:08 zzkt

Is there someone who would be interested in reviewing this PR? or can you let me know if there is more/other work needed? @dyfer or @jxa?

zzkt avatar Aug 16 '22 09:08 zzkt

Thanks for the ping @zzkt, I missed this PR.

@jxa would you be interested in reviewing this, especially from the emacs perspective?

@zzkt, have you tested whether cmake installation method still works after these changes? That would be one thing I'd be looking out for when reviewing this.

Also, how drastic of a change is to require emacs 27.1? And does that requirement still stands if scel is installed as a quark or from cmake?

dyfer avatar Aug 16 '22 17:08 dyfer

Thanks @dyfer I've checked building with cmake and it should work as expected. In 5a5ff2b2b6bc758109ab9b2fdd48fa78f2b5621c I've added changes to include locally installed emacs packages (i.e. w3m) if they are in the standard paths (this could also be a build option?)

Since w3m is required for viewing the help files it needs to be installed or emacs will return an error during build. It might be helpful to add a more verbose message with cmake.

Adding Package-Requires: ((emacs "27.1") (w3m "0.0")) should only concern installing as a package, so in theory if built via cmake it won't cause problems. However, there could be runtime issues trying to use w3m on emacs < 27.1

zzkt avatar Aug 17 '22 07:08 zzkt

There are some minor changes in the scel CI workflow which checks the package build and includes linting (and potentially more strict checks at some point) but no cmake.

I assume there is something in https://github.com/supercollider/supercollider that would pick up any other build errors?

zzkt avatar Aug 17 '22 07:08 zzkt

Thanks for your work and again sorry for lack of my understanding here.

Since w3m is required for viewing the help files it needs to be installed or emacs will return an error during build.

With this PR we'd have 4 ways to install scel: as SC quark, from MELPA, from debian package and when building SC from source. Would the lack of w3m installed cause error in all these methods? Does this PR change the behavior for installing this as a quark or from source?

I assume there is something in https://github.com/supercollider/supercollider that would pick up any other build errors?

Yes, hopefully...

You can check our CI relatively easily: 1. fork supercollider, 2. create a new branch based on develop, 3. change scel submodule to use your scel fork, 4. push the SC branch to your SC fork. The CI will run and you can see if anything comes up.

Relatedly - if/when this PR gets merged, we should remember to follow up with updating supercollider submodule.

dyfer avatar Aug 17 '22 23:08 dyfer

Hey @zzkt I should have some time in the next couple of days to pull this branch and take a closer look.

jxa avatar Aug 18 '22 02:08 jxa

At the moment w3m is not an explicit dependency during the build or install only because it's commented out (probably to avoid build errors?) https://github.com/supercollider/scel/blob/d8296a9af54d145703726328e22b9e89a08476af/el/sclang-help.el#L21

I think it makes sense to either install or check for it during the build (or make it optional when installing scel from source which needs more work...)

looks like a few things would need updating...

  • MELPA package adds w3m as a requirement and it's handled by the package manager
  • check or prompt during the cmake install when the emacs ide is a build option (i'm not sure of the specifics)
  • on debian the supercollider-emacs package could depend on w3m-el (at the moment it only Recommends: w3m-el)
  • not sure what install via quark needs (but looks like it's also assuming w3m is installed)

zzkt avatar Aug 18 '22 08:08 zzkt

There are still some issues with the supercollider CI build. I'm looking into it (some details at https://github.com/zzkt/scel/issues/3)

zzkt avatar Aug 18 '22 16:08 zzkt

Looks like the cmake build is working as expected for supercollider and scel.

I've added some kludgy stuff (seen here) to check if w3m is installed locally and there also needs to be a small addition to the supercollider CI https://github.com/zzkt/supercollider/commit/6711d20122e941bb86edad072c8d0be1a4b12563 (and possibly elsewhere?)

zzkt avatar Aug 19 '22 11:08 zzkt

have you had a chance to check the changes jxa? anything else I should be looking at?

zzkt avatar Sep 13 '22 07:09 zzkt

blip @dyfer and/or @jxa

zzkt avatar Oct 31 '22 10:10 zzkt

@jxa do you have any more comments for this?

dyfer avatar Oct 31 '22 18:10 dyfer

@jxa would you be able to take a look at these changes?

dyfer avatar Jan 16 '23 15:01 dyfer

@dyfer and @jxa another option could be that i link to another repo for the melpa packages and merge from there as required?

zzkt avatar Feb 03 '23 14:02 zzkt

re.blip @dyfer and/or @jxa

zzkt avatar Jun 06 '23 10:06 zzkt