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

Upload to Hackage #1175

Closed
13 tasks done
pepeiborra opened this issue Jan 9, 2021 · 51 comments · Fixed by #1176
Closed
13 tasks done

Upload to Hackage #1175

pepeiborra opened this issue Jan 9, 2021 · 51 comments · Fixed by #1176
Labels
CI Continuous integration type: enhancement New feature or request

Comments

@pepeiborra
Copy link
Collaborator

pepeiborra commented Jan 9, 2021

Goal: cabal install haskell-language-server should just work

Minimum tasks required:

  • Change all-plugins and all-formatters to default: False,
  • Change individual plugins flags to default: True
  • Change packaged plugin flags to Manual: False
  • (optional) Upload plugin to Hackage: explicit imports
  • (optional) Upload plugin to Hackage: retrie
  • (optional) Upload plugin to Hackage: eval
  • (optional) Upload plugin to Hackage: hlint
  • (optional) Upload plugin to Hackage: tactics
  • (optional) Upload plugin to Hackage: splice
  • (optional) Upload plugin to Hackage: class
  • (optional) Upload plugin to Hackage: haddock
  • Backport changes to release branch (tag: ghcide-0.7.0.0)
  • cabal upload ...
@pepeiborra
Copy link
Collaborator Author

Please upload your plugin to Hackage if you want to be available @tittoassini @isovector @Ailrun @jneira @konn @berberman

@konn
Copy link
Collaborator

konn commented Jan 9, 2021

When I implemented the Splice plugin, I factored out Ide.TreeTransform, which was part of the Tactics plugin, as a new package hls-exactprint-utils, since I need that functionality and their variants. Should I upload it as well?

@pepeiborra
Copy link
Collaborator Author

pepeiborra commented Jan 9, 2021

Yes, please do upload that too and extend maintainer privileges to @isovector

@konn
Copy link
Collaborator

konn commented Jan 9, 2021

Thad package includes codes by @isovector and @TOTBWF plus some variants and generalisation of the underlying monad I implement and it also lacks a license (which is inherited from Tactics plugin). I think I have to discuss on these with @isovector and @TOTBWF.

@mergify mergify bot closed this as completed in #1176 Jan 9, 2021
@pepeiborra pepeiborra reopened this Jan 9, 2021
@isovector
Copy link
Collaborator

I generally prefer BSD-style licenses, but am happy inheriting Apache 2.0 if it makes life easier.

@Ailrun
Copy link
Member

Ailrun commented Jan 9, 2021

Class plugin is now uploaded.

@konn
Copy link
Collaborator

konn commented Jan 9, 2021

I generally prefer BSD-style licenses, but am happy inheriting Apache 2.0 if it makes life easier.

OK, then I will set it to Apache 2.0 and upload it to Hackage if @TOTBWF agrees.
Can I add @isovector (isovector on Hackage) and @TOTBWF (ReedMullanix on Hackage) as co-maintainers of hls-exactprint-utils after that? I think doing so makes situation smooth as Tactics plugin also depends on that package.

@isovector
Copy link
Collaborator

@konn just add me as the co-maintainer; @TOTBWF wasn't involved with that module.

@konn
Copy link
Collaborator

konn commented Jan 9, 2021

OK, so I will list I and you as a author/maintainer of hls-exactprint-utils, making pull-request for this, and upload to Hackage after it got merged!

@isovector
Copy link
Collaborator

Sounds good, thanks for taking the lead here!

@jneira
Copy link
Member

jneira commented Jan 9, 2021

As commented in irc and the other issue about uploading the package, we should update the README to include the hackage method of installation, and warning about a caveat: the haskell-language-server executable will only works with the ghc used for installing it. haskell-language-server-wrapper is able to choose the correct hls+ghc version if the executable follow the convention of add the ghc version as suffix.
So users will have to set the correct hls version on path before opening the project or copy the executable following the convention required by the wrapper.

@berberman
Copy link
Collaborator

Class plugin is now uploaded.

@Ailrun I found a little mistake in class plugin:

synopsis: Explicit imports plugin for Haskell Language Server

@Ailrun
Copy link
Member

Ailrun commented Jan 10, 2021

@berberman Oops... I will fix that.

@konn
Copy link
Collaborator

konn commented Jan 10, 2021

I've just uploaded hls-exactprint-utils and hls-splice-plugin, and also added @isovector to maintainers of hls-exactprint-utils.

@berberman
Copy link
Collaborator

hls-haddock-comments-plugin is uploaded.

@alanz
Copy link
Collaborator

alanz commented Jan 10, 2021

I think we should update the Copyright, Author and Maintainer fields of the haskell-language-server.cabal file.

It is a collective entity.

IIRC, some projects have a file called CONTRIBUTORS, and copyright refers to that? As an idea.

And this can be dealt with as a separate issue, need not hold up releasing the candidate.

@pepeiborra
Copy link
Collaborator Author

Makes sense. Best to get it right before uploading. I'm not in a huge rush to upload anyway.

@jneira
Copy link
Member

jneira commented Jan 10, 2021

i've just upload hls-hlint-plugin: https://hackage.haskell.org/package/hls-hlint-plugin
i am thinking in adding @alanz and @ndmitchell as hackage maintaniners if they agree, someone else?

@jneira
Copy link
Member

jneira commented Jan 10, 2021

I think we should update the Copyright, Author and Maintainer fields of the haskell-language-server.cabal file.

It is a collective entity.

IIRC, some projects have a file called CONTRIBUTORS, and copyright refers to that? As an idea.

And this can be dealt with as a separate issue, need not hold up releasing the candidate.

I've used this values in hls-hlint.plugin:

author:        https://github.com/haskell/haskell-language-server/contributors
maintainer:    https://github.com/haskell/haskell-language-server/contributors

but i've kept copyright: Alan Zimmerman,not sure if you can put an url in that field, i guess you will need an invidual or an org, like Haskell.org, Inc. (i would use that one cause we are in its github organization)

@alanz
Copy link
Collaborator

alanz commented Jan 10, 2021

Perhaps we should add an explicit contributors file, and manage it with something like https://allcontributors.org/

@alanz
Copy link
Collaborator

alanz commented Jan 10, 2021

And technically the copyright is all contributors, not just me.

@jneira
Copy link
Member

jneira commented Jan 10, 2021

It would be nice to tag each package release like: https://github.com/haskell/haskell-language-server/releases/tag/hls-hlint-plugin-0.1.0.0
It lets users get the exact version quickly using git and see the history, etc.
To make easier the release process we could make ci doing the hackage releases automatically and a way to trigger them could be create those tags, following the convention ${packageName}-{version}.

@tittoassini
Copy link
Contributor

So, is the plan to completely remove the plugins from the hls repository?

@jneira
Copy link
Member

jneira commented Jan 11, 2021

@tittoassini afaik not necessarily but this make it possible,
However there are some issues with the test suite: #576

@tittoassini
Copy link
Contributor

Should I set these fields in the eval plugin cabal? Has this been agreed?

author: https://github.com/haskell/haskell-language-server/contributors
maintainer: https://github.com/haskell/haskell-language-server/contributors

@jneira jneira added CI Continuous integration type: enhancement New feature or request labels Jan 15, 2021
@jneira
Copy link
Member

jneira commented Jan 19, 2021

@pepeiborra is there some blocker to upload the package? should we upload tactic plugin?

@pepeiborra
Copy link
Collaborator Author

No blockers, the tactics package is certainly not a blocker. I thought you and Alan wanted to add a contributors file, that's all

@jneira
Copy link
Member

jneira commented Jan 19, 2021

@pepeiborra mmm right, i thought we could upload it anyways, with the actual copyrigths (like actual hls-plugin-api or hls-hlint-plugin). thoughts @alanz?

@ndmitchell
Copy link
Collaborator

FWIW, I tend not to bother with contributors files in projects I'm involved with as its a constant source of maintenance. And when a new contributor shows up, you realise way too late (after they're contributed a substantial portion) that no one forgot to include them. I'd just say "The Haskell IDE Team" or even just Alan, and people who want to know the contributors can look it up on GitHub interface.

@alanz
Copy link
Collaborator

alanz commented Jan 19, 2021

I am happy with "The Haskell IDE Team" . It seems crazy for it to be me, there are so many people contributing.

@jneira
Copy link
Member

jneira commented Jan 19, 2021

Ok i will change hls-plugin-api and hls-plugin-api metadata

@jneira
Copy link
Member

jneira commented Jan 20, 2021

@pepeiborra I've changed the package metadata for hls itself, hls-plugin-api and hls-hlint-plugin with #1234 so afaics it could be uploaded when merged

@jneira
Copy link
Member

jneira commented Jan 20, 2021

@isovector it would be nice to have hls-tactics-plugin in hackage too, would you have some time to do it (if you agree of course)?

@isovector
Copy link
Collaborator

Sure thing. What do you need from me?

@jneira
Copy link
Member

jneira commented Jan 20, 2021

@isovector upload the hls-tactics-plugin (the version tagged with 0.8.0.0) to hackage, not sure if you had to do it before(i just check you are a experimented hackage uploader 🙂)

@pepeiborra
Copy link
Collaborator Author

@jneira you just need to back port all the new changes (I've lost track) to the branch: https://github.com/haskell/haskell-language-server/tree/0.8.0-hackage and then upload to Hackage

@konn
Copy link
Collaborator

konn commented Jan 20, 2021

It's rather off-topic, but can I add some maintainers of the HLS repo to Hackage maintainer of splice plugin and (now deprecated) hls-exactprint-utils package? I'm willing to maintain Splice Plugin at least for a while, but I think it is safer and allows us flexible release procedure.

@jneira
Copy link
Member

jneira commented Jan 20, 2021

@jneira you just need to back port all the new changes (I've lost track)

Do you refer to #1234, for example? My idea was not make a new release of hls-plugin-api and hls-hlint.plugin but update the package metadata with hackage revisions.

...but the change of hls itself should be backported, right, will do asap

@jneira
Copy link
Member

jneira commented Jan 20, 2021

@pepeiborra I've updated the 0.8.0-hackage branch: 812da11, and hls-plugin-api/hls-hlint-plugin have revisions to match the metadata of that commit

@konn
Copy link
Collaborator

konn commented Jan 21, 2021

OK, I've just copied Maintainer list of hls-plugin-api to hls-splice-plugin and hls-exactprint-utils (now deprecated, but the uploaded version of Splice Plugin depends on it).
I think I added @alanz @pepeiborra @wz1000 @bubba and @jneira, if I operated correctly. Thanks!

@augustss
Copy link

It's rather confusing when the instructions tell you how to install from hackage, but then it doesn't exist on hackage. Perhaps add a comment about that in the instructions?

(And now I quietly go back to using ghcide.)

@pepeiborra
Copy link
Collaborator Author

Uploaded: https://hackage.haskell.org/package/haskell-language-server-0.8.0.0

@isovector
Copy link
Collaborator

@Ailrun
Copy link
Member

Ailrun commented Jan 22, 2021

@isovector BTW, is there something to do with that version number? It looks quite high.

@isovector
Copy link
Collaborator

isovector commented Jan 22, 2021

@Ailrun it's what was already in the cabal file. Not sure where it came from --- I assumed someone had added it and it some sort of consistent plugin versioning scheme.

@isovector
Copy link
Collaborator

Well, we're stuck with it now. I'll maintain PVP from here going forwards. /shrug

@Ailrun
Copy link
Member

Ailrun commented Jan 22, 2021

It looks like it is the first version introduced by you? (This PR includes the first commit that introduces the cabal file, #516) Though maybe it comes from the other repo (I heard that there was a root repo for the tactic plugin)

@jneira
Copy link
Member

jneira commented Jan 22, 2021

maybe it was the version of hls when the plugin was bootstrapped?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI Continuous integration type: enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants