-
-
Notifications
You must be signed in to change notification settings - Fork 368
Regular Meetings
We have a bi-weekly meeting. Attendance is open, contact the chair for an invite.
In the meetings, the agenda is discussed, followed by triaging issues and discussing open PRs, potentially reviewing them if time permits. For the meeting the chair should establish an agenda (either in advance or at the start) and take minutes in this doc.
Chair: Fendor
Attendees: Fendor, Milky, Zubin, Patrick
Agenda:
- No agenda
- Release HLS 2.7.0.0
Minutes:
- Release 2.7.0.0 is done
- Only minor hiccups
- Issue triaging
Chair: MPJ
Attendees: MPJ, Jose, Patrick, Jan, Elodie
Agenda:
- WT contract
- GSoC
- Go to dependency definition
- Zurihac tooling workshop
- Renaming generated stuff
Minutes:
- WT contract
- Things we might want WT to focus on
- Release management as unusual
- Flaky ghcide tests
- Reviewing work on hls-graph
- MPJ draft agreement
- Things we might want WT to focus on
- GSoC
- Elodie might want to mentor
- Go to dependency definition
- 2 main issues
- Some refactoring, can delay
- GHC 9.8 conflict fixing
- MPJ proposal for doing things differently
- Too much work, too late to switch
- We can check with Zubin to see what he wants
- Elodie maybe start work in March
- MPJ write issue about “let it fail”
- Jan might help out with the PR
- 2 main issues
- Workshop
- Generated stuff
- Probably sensible to just filter out generated stuff in the short term
- https://github.com/microsoft/language-server-protocol/issues/1904
- SemanticTokens delta PR
- Still unclear what to do
- We can move forward and just write a clear comment
Chair: MPJ
Attendees: MPJ, Fendor, Zubin, Jan Hrcek
Agenda:
- ZuriHac
- Meeting schedule change
- WT contract renewal
- Release for ghcide-test-utils, #3994
Minutes:
- ZuriHac
- Haskell Tools workshop
- M asked to talk about HLS
- Unclear if Zubin is coming
- Fendor is going to go
- Might only arrive one day before
- Maybe we can do HLS on day 2
- Look for good Zuirhac issues
- Might have some keen people after the workshop
- Meeting schedule
- Move 1 hr later
- Make the issue triage meeting a generic meeting
- WT contract
- Last tranche got sucked up a lot with release management
- WT multi-home-unit blog post
- Ghcide test suite audit
- Releases
- Should we even build binaries?
- Still useful to retain knowledge
- Can at least simplify
- Should we even build binaries?
- Ghcide-test-utils issue
- Zubin will fix
- GSOC
- Zubin write proposal for structured diagnostics
- Fake ghc dependency is annoying
- Can we just use the GLASGOW_HASKELL macro as a proxy?
Chair: MPJ Attendees: MPJ, Fendor Agenda:
- Issue triage
- GSoC
Minutes: LSP config issue Runners issue GHCup and releases Issues with the vanilla channel MPJ: I think we should just accept that we have to wait and see what Juilan does MPJ: build everything against vanilla like Julian wants, it’s compatible with downloads.haskell.org, and ghcup vanilla MPJ: if there are problems with the setup we can just direct people to ghcup GSoC MPJ: I’ll write up inlay hints idea Zubin: write up go-to-implementation and misc; and structured diagnostics Fendor: talk to cabal folks and maybe make a proposal for cabal plugin; maybe improve test performance Idea for IOG folks Use fat interface files instead of core files Fault tolerant GHC pipeline Various GHC issues HLS plugins in one package People generally in favour
Chair: MPJ
Attendees: MPJ, Zubin, Fendor, Nathan
Agenda:
- MHU
- GSoC ideas
- Release for 9.6.4
- PRs to review
- Test suite refactoring update
- LSP scheduling and canceling
- Exactprint
- Cabal release
- Call for plugin maintainers
Minutes:
- MHU
- Next HLS release will have it in
- Can ask people to test by building cabal HEAD
-
ghcup compile
works? Nope ghcup install cabal --force -u https://github.com/haskell/cabal/releases/download/cabal-head/cabal-head-Linux-x86_64.tar.gz head
-
- Works for macos and windows, too
- GSOC ideas
- Release
- This week ideally
- Testing
- Another test suite library seems unnecessary
- More parallelism would be nice
- Splitting the test job is still viable, need to batch the components
- LSP scheduling
- Exactprint patch up this week
- Cabal release
- Plans for 3.10.3 in the next weeks but no 3.12, yet
-
cabal path
command is a roadblocker for 3.12 due to UX considerations - See cabal meeting protocol https://hackmd.io/mQjghm2zRgWgcyD4XKhBqA?edit
-
- Plans for 3.10.3 in the next weeks but no 3.12, yet
- Call for maintainers
- Fendor write something up to call for people
Chair: MPJ
Attendees: MPJ, Zubin
Agenda:
- Release status
- 9.8 support
- Exactprint
- MHU
- What else WT is up to
Minutes:
- Release
- 2.5 is out
- Julian built FreeBSD bindists
- Recommended channel is updated
- Will be a new GHC version in January
- 9.8 support
- Zubin has an exactprint patch
- Might be a lot of exactprint changes in 9.10
- Some remaining allow-newers, might be able to get rid of them
- MHU
- Would be nice to get some pre-release testing
- Maybe write a WT blog post?
- Need a cabal release
- Zubin ask Matt what’s up
- Other WT stuff
- 9.8 support
- Test suite
- Pick up Fendor’s work?
- Nothing more to do with implicit-hie right now
- Better cradle failure diagnostics? Structured diagnostics for hie-bios
- Maybe progress reporting for hie-bios?
Chair: MPJ
Attendees: MPJ, fendor, Zubin
Agenda:
- Release HLS 2.4.0.1
- Head.hackage, how to use in the future
- Stan plugin
- New Label “status: needs review”
- Stack CI is on CircleCI
- Multiple home units status
- PRs needing attention
Minutes:
- Release
- 9.4.8 binaries
- M message Julian to talk about release
- Head.hackage
- Next time try to have PRs for all the patches we need, use source-repository-packages to pull them in, so we can see the list of things we’re relying on and we know there are PRs in flight
- Stan
- Sure why not
- Need to add the submitter to the repo so they can be in codeowners
- Needs review
- Useful to indicate if something is ready to review even if it has e.g. CI issues
- Notes plugin
- Maybe doesn't pull its weight, but we have a relatively relaxed policy so far
- Nice to have an example of adding a go to def rule
- Maybe it should be disabled by default? Encourage GHC devs to try it out
- CircleCI
- MPJ might port it if bored
- Might push our cache usage up with could be bad
- Multiple home units
- Implicit cradle stuff is in HLS
- Can remove the stuff from hie-bios
- Very close to it “just working”
- checkProject is now misnamed, it checks the component, but won’t load all the components in the project
- Could have some more configuration options
- checkComponent
- checkPackage
- checkProject
- M make an issue
- WT stuff
- Multiple home units
- Compatibility stuff
- Fixing plugins that need exactprint
- Test improvements
- Propose dropping 9.0 ahead of schedule
- Not widely used
- Would simplify our CPP
- Mergify issues
- Doesn’t work well because the CI is not reliably green, and then it ignores the PR
Chair: fendor
Attendees: Nathan, Elodie
Agenda:
- Release HLS 2.4.0.0
- Release HLS 2.3.0.0
Minutes:
- “Goto dependency definition” is ready for review
- Releases were not discussed since We decided to do issue triaging instead
Chair: michaelpj
Attendees: michaelpj, nathan, david (left early), fendor, elodie, zubin, profpatsch
Agenda:
- The chat situation
- Release CI is broken
- Release 9.6.3
Minutes:
- HF business
- Secrets
- Ailrun has access to add secrets
- Fendor will prod to actually do it
- Richard Eisenberg is fallback contact, has admin access to bitwarden etc.
- OC funds
- Make M an admin so we have someone else active
- Done!
- Secrets
- Better GHC API chat
- Might need someone to join a WG to talk about this
- Releases CI
- Might be fixed now?
- Zubin has a PR for downgrading checkout action to fix something
- Could maybe just remove the checkout action if we have to
- Macos stuff is broken
- Probably simpler to use the GHC nix stuff now
- Zubin going to try this out
- GHC 9.10 will not build on old debian images any more, so we’ll need to drop some architectures for some versions
- Might need to hack the scripts a bit
- Release for 9.6.3
- Zubin is going to do it
- What’s the deal with ghcup revisions?
- Someone needs to implement it
- Maybe we could pay for it if it’s not too much work
- Zubin is going to chat about it
- Chat situation
- Lets just use a matrix room, MPJ will set up
- HSOC projects
- End of project admin
- Elodie
- Finishing off some comments
- Make issues for stuff that doesn’t get done
- GHC patch is still in progress
- Nathan is finished, has emailed
- Jana is finished
- Still have some PRs in flight, not clear what to do with them
- Fendor tries to push them over the finish line in the next months
- Test flakiness
- Zubin has done some work on it
- A bunch of the func-tests are redundant, Fendor will delete some
Chair: michaelpj
Attendees: michaelpj, fendor, nathan
Agenda:
- Triage
Minutes:
- Did triage
- Chat situation
- Seems like we need to commit to one platform
- Maybe let’s at least make a Matrix room and advertise it
Chair: michaelpj Attendees: michaelpj, nathan, david, jana
Agenda
- HSOC project status
- Make sure everyone is on track to be done soon, cut off extra work if it’s not feasible
- Release
- What’s going on with the client settings rule?
Minutes:
- HSOC
- Nathan
- A few PRs to finish, want to get to benchmarking
- Elodie
- Mostly there, going to finish off the main PR and make issues for the rest, some comms issues with Zubin
- Will write a blog post
- Jana
- Trying to get the code action POC in a good state
- Lots of leftover bugs
- Many of them dependent on the parser being in a better state
- Subsequent writeup
- Would be good to write something about why we have a cabal parser of our own
- Nathan
- Releases
- 9.4.7 should be out today
- MPJ almost has the workspace/configuration stuff done
- MPJ question about client settings
- Might need to be the way it is
- Multi-unit patch
- Nearly done
- Problems with implicit-hie
- Maybe we need to take it over?
- Zubin going to take a look
- .hls directory
- Annoying that people will have to gitignore it but seems unavoidable
- Should mark it clearly in the release notes
- Could maybe put the other caches in there
- Annoying that people will have to gitignore it but seems unavoidable
Chair: michaelpj Attendees: fendor, michaelpj,nathan, milky
Agenda:
- Triage
- Did triage
- Release
- Had some issues with the release CI
- Windows build issue
- Probably not going to get the configuration fix up asap unless MPJ gets it done today
- Might need to do another release next week if there’s going to be another point release
- Will go ahead with the release today
- Talked about Fendor’s test improvement PR
Chair: michaelpj
Attendees: fendor, michaelpj, zubin, elodie, nathan, milky, christiansen
Agenda:
- Ailrun has access to twitter email account, do we want to take ownership of that email address
- Proposal: Add Ailrun to Bitwarden, then they can enter the email and password
- HSOC project status
- Zubin update
- New Release 2.1.0.0
- Proposal: Release manager: Fendor
- Proposal: Time with next GHC release
- Release strategy, coordination between HLS and GHC
- WT plans
Minutes:
- Going to take over the email address
- Fendor to tell david which email address to send bitwarden invite to
- Twitter Account: https://twitter.com/IdeHaskell
- HSOC update
- Nathan
- 2 PRs in flight
- Working on plugin error infrastructure
- Merging refine import and explicit import plugins
- Blog post is next on the list
- Elodie
- Fighting the test suite, rogue failing test
- Compiler versions are painful
- Branch is mostly working
- Need to write tests for the main feature
- Jana
- Working on completions still
- Working on a simple parser for cabal files
- Would be nice to upstream this
- But there was a lot of effort on cabal file parsing that got stuck
- Can be cruder, don’t have to care about error messages
- Nathan
- Zubin update
- 9.8 support incoming
- Would be nice to get a HLS for the second alpha
- Unclear who’s paying for it
- Ghcide is in head.hackage
- ModuleGraph patch https://github.com/haskell/haskell-language-server/pull/3232
- New benchmarks
- Discussion with Pepe: no benchmarks regress, unclear what more we can do
- Multi-component stuff
- This patch may be the last one
- Assuming no bugs!
- A hie-bios patch too https://github.com/haskell/hie-bios/pull/409
- Fendor: create a ticket outlining what we need for everyone to benefit from cabal/hie-bios improvements.
- 9.8 support incoming
- Test suite
- Zubin would like to work on it
- Fendor has a patch to test handlers directly
- Harder to deal with commands
- Discuss on the issue tracker
- Fendor: create a ticket outlining the testsuite imrpovements
- Next release
- Fendor volunteers to be release manager
- Ideally 9.4.6
- Not 9.8 alpha
- Release strategy
- Users want a HLS release as soon as there is a GHC release
- Really: users want binaries as soon as there is a GHC release
- Currently we’re restricted because of GHCUp: can’t add binaries for released versions, have to do a new release, which adds much more overhead
- If we could lift this restriction it would help a lot
- Maybe Zubin could do it
- Probably will still need a real release for major versions, but lagging there is more okay
- GHC version compatibility again
- Come on, let’s drop GHC 8.10 already
- WT plans
- Test suite
- GHC support
- Write down the process for this meeting for the next time a new person needs to hold the chair.
- Improve transparency of these meeting outcomes, why and how did we arrive at the WT contract and other expenses (I don’t think we have other expenses right now)
- Maybe publish this meeting document
- Publish short blogs to opencollective how we are using the funds
- Overlaps with the WT blog posts
- Did NASA write us an email?
- We should set up an official email address
- Perhaps list the main contributors on the homepage
- Plugin performance
- It should be easier to measure plugin performance
- Ghcide-bench only measures memory, not cpu speed, both might be interesting.
- It should be possible to see how much memory each plugin is using during a normal run.
- WT Contract
- Contract is over already, need something soonish
- What do we want them to do?
- Performance improvements?
- Updating to newer GHCs?
- Reviewing plugins
- Often have performance woes
- CI should be done by contributors if possible because it is relatively easy
- If a contributor has time and motivation, WT should be doing it otherwise to make sure it happens on time.
- Also, they take responsibility to make sure it happens and in case of issues.
- How can we make contributors cut the releases?
- How much work is a typical release?
- From half a day to one week, but depends on the state of release CI
- Nightlies motivates us to have a working release CI all the time and invest in its performance
- Simplify sending PR to ghcup-metadata
- If a contributor has time and motivation, WT should be doing it otherwise to make sure it happens on time.
- Zubin is working on module graph performance optimisations
- https://github.com/haskell/haskell-language-server/pull/3232
- Sorted out most performance issues the facebook codebase has with it
- HSoC Progress
- Who needs reviews?
- Code Resolve PRs, Michael is looking at them
- 2.0.0.1 release
- Fix CI issues (ran out of space)
- More linux machines (self hosted by Moritz)
- Self-hosted might not be sustainable eventually due to the bus factor
- Moritz is doing it for free, had to fix issues while on vacation
- Self-hosted might not be sustainable eventually due to the bus factor
- No new changes
- Maerwald wants to improve the release checklist documentation
- Nightlies
- Might improve reliability of CI
- Where to store bindists? S3?
- Maerwald creates a prototype
- Fendor made a stack issue for better support: https://github.com/commercialhaskell/stack/issues/6154
- Some chat about stack supporting multiple home units
- Welcome HSOC folks
- Release 2.0.0.1 (disk usage issues)
- Why not just add binaries for old releases rather than doing a whole new release?
- Zubin: it seemed easy enough
- Julian: would be nice to know when releases happen
- Julian has a meeting with GHC team regularly and talk about it
- Would be nice to not have more meetings!
- Could do with some kind of channel for this
- Julian could do with clarity on when the release is signed off on
- Add a section to the release process doc saying “two out of three of Michael/Zubin/Julian have to sign off”
- Julian wants to add some stuff from his own release checklist to the main HLS one
- See checklist in https://github.com/haskell/haskell-language-server/pull/3608
- Issues with the release
- Tweak the scripts to do some more aggressive cleanup
- Which versions of GHC/HLS should be recommended?
- Ideally don’t want a combination of versions where there aren’t HLS binaries
- Need some kind of policy
- Awkward to add binaries for HLS later because GHCUp doesn’t support revisions yet
- GHC version support (is it time to drop 8.10?)
- Lots of people still on it
- Vscode extension can figure out which HLS/GHC versions are compatible, GHCUp can’t (yet!)
- 8.10 is the main source of CPP atm
- WT contract renewal (blog post on the way: https://www-staging.well-typed.com/staging-hls-wt-r8kdpi/blog/2023/05/hls-work/)
- MPJ to send out message about it
- Zurihac
- Fendor and Zubin and Michael will be there
- Talk about making HLS more maintainable with GHC help
- Exactprint issues
- Can’t use it on typechecked source currently
- Not very well documented
- Plan Zurihac projects
- MPJ write a GHC ticket about related locations for diagnostics
- HSOC
- Hopefully doing all three projects
- MPJ update on LSP work
- Should revisit easy issues for HSOC folks and Zurihac
- HSoC
- We have two in
- More resolve methods
- Jump-to-def for non-project packages
- Inlay hints
- MPJ write a proposal
- We have two in
- Tests are flaky, what can we do?
- Ghcide tests seem quite flaky atm
- Might be down to 1 in 3 failing
- Turn off fail-fast on the test job matrix
- It’s helpful for the succeeding ones to succeed
- Dropping 8.10
- Stackage LTS is still on 9.2, that’s our proxy for community adoption
- Other community proxies: ghcup recommended compiler?
- 1.10 release retrospective
- Had some issues with Hackage uploads
- Issue with diffing against the previous version, because it was made off a branch
- Should try and do
cabal build haskell-language-server
from Hackage at the end - Maybe just version everything identically?
- Means we’ll end up with pointless releases of some packages that haven’t changed
- But means that version bumping is very simple
- What about making everything multiple public libraries?
- Does Hackage support it?
- Does stack support it? No
- Does nixpkgs nix support it
- Generally a new feature
- Zubin has some release CI improvements coming
- Difficulty with darwin as expected
- HLS governance
- MPJ made an attempt at a descriptive document:
Nobody turned up, MPJ and David had a chat.
- Contributor's Workshop in Zurich
- David would like to have some HLS content. Maybe ask Zubin/Pepe if they’d come and present
- GSoC
- Mentors: Zubin, Fendor, MPJ
- Ideas
- Type of a selection range
- May be difficult
- GHC PR to use .hie files https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3344
- Opening source files for non-project packages
- Code action resolve support for more code actions
- MPJ make an issue
- Cabal plugin (Fendor)
- Basically a done deal 🙂
- Type of a selection range
- Stabilising out use of the GHC API
- Still tricky
- Pepe: I’d like to see a writeup of any proposal to tidy up the CPP, we’ve tried before and not succeeded very well
- Or at least we tried a compatibility layer
- Multiple home-units
- WT are working on it
- Ghcide in head.hackage???
- Apparently it works at the moment, maybe it won’t in future
- 9.6 compat
- Zubin has tried, ghcide mostly seems to compile
- Plugins, unclear. Depends a bit on ghc-exactprint
- Matt will get ghc-exactprint into head.hackage
- Someone else is funding this work from WT
- Might try to put the tier 1 plugins into head.hackage
- Next release
- Point release after 9.2.6 (early next week), get binaries for it and also do a couple of backports
- Julian will do it
- Zubin will do a couple of backports to a release branch
- Zubin needs to give Julian upload keys for downloads.haskell.org
- Github CI
- Makefile is crucial
- Deals with the dynamic linking cleverness
- Windows doesn’t need it because reasons, so has a simpler implementation
- MPJ look into loading bits of matrices from files, solve the GHC version issue
- Caching
- Controlled by a repository variable, can be off or non-fatal
- Zubin is happy
- Makefile is crucial
- Governance
- Julian: two issues
- Telling people what we did with their money
- WT is supposed to make a blog post about how the money was spent at some point
- Resolving disagreements
- Telling people what we did with their money
- MPJ: also legitimacy
- Julian: two issues
- Github CI PR
- Zubin: the gitlab CI works fine for me, but it would be simpler to just rely on one system
- Scope
- FreeBSD support is just one CI file
- cabal-cache usage should be optional
- S3 needs some secrets
- Need some kind of secrets-sharing scheme
- HF has a Bitwarden organization that we could maybe use
- Also need to pay for S3
- In principle HF might provide S3 in future, but this needs some consideration
- David: I need a proposal for it, but I’m generally in favour of having an institutional account
- Maybe start by using Julian’s and see how it goes from there
- Runners have limited accessibility
- But can work on this
- Sharing across the haskell org
- Cost-benefits of caching for release CI
- Reduces build time, but so does parallelizing the jobs
- Zubin: built times for release CI aren’t such a big deal
- Michael: maybe we can just toggle the caching of the artifacts so we can turn it off if we’re worried
- Darwin environment
- Setup with brew currently, which has been problematic in the past and may be problematic in the future
- Zubin: I’m concerned about this, it’s tricky. Using nix gives us the same toolchain that GHC uses
- Julian: the main thing we install that’s tricky is LLVM, and we can pin that manually. Also it mimics what users would do if they built it themselves.
- David: what question is this CI job answering? Is it about source buildability or binary compatibility?
- We’ll have the same problem sometimes on the Github MacOS runners
- Maybe we can do both or have one as a fallback?
- Maybe we can pin the brew repository?
- Zubin would be happy with this
- Can we use the cabal-cache stuff for the normal CI?
- Some issues with cabal not knowing about ABI
- Should be doable
- Arguing about supporting FreeBSD
- David: it would be nice if we were discussing this in a more coherent way
- Minor release because of more 9.4 compat?
- Supporting the most recent version of GHC
- Might make releases easier
- Item for later discussion: can we make it easier to update the bounds/versions for plugins when we do a release
- Actions:
- David: get some HLS members access to the HF bitwarden account
- Michael&others: review Julian’s PR
- Julian: pin brew repository in the PR
- Julian: put AWS secrets in the HF bitwarden
- Julian/someone else?: later? use cabal-cache in PR CI workflows
- Release so we get binaries for new GHC versions
- It’s been very slow and makes us look bad
- The gitlab stuff is still working
- Moving to GH would require a lot more work
- Zubin is working on a release
- Proposal: GitHub CI is slow
- Increase cache-size with cabal-cache and s3 bucket, paid with opencollective money. See https://github.com/haskell/ghcup-hs/pull/694 for inspiration
- What’s the problem?
- We need >10G of cache space
- Don’t cache on failure, so if a job fails and it was lacking in caching, then it will redo everything lots of times
- Didn’t we get special treatment from github in the past?
- Pepe can ask Patrick
-
https://github.com/haskell/haskell-language-server/actions/runs/3689923567
- Longest Windows test job is 1h50m
- Not great but not terrible either
- Longest Windows test job is 1h50m
- Can we find out how big the cache is?
- We’re using 43gb of 10gb !
- Cache key: maybe it should just be hash of plan.json? Plus platform + GHC version?
- What happened with the migrating to GH/self-hosted runner discussion?
- Julian: it’s still bad being yoked to the GHC CI, we’re stuck with their platform support and the GHC devops don’t have time for us
- Zubin: we can try it so long as we don’t lose support for some platforms
- We agreed that Julian is going to try it
- Zubin’s memory-usage PRs
- Module graph
- Will try to get them in before the release, but release anyway
- Managing our releases quickly
- Coordinate releases with bugfix releases of GHC
- We need GHC in GHCup in order to build our binaries
- So we have several steps
- GHC releases
- GHCup adds it
- We build binaries
- GHCups adds our binaries
- Does Julian know when GHC gets released?
- Not necessarily, no coordination there
- Someone else could also do the metadata update!
- Maybe the HF can help, might be nice to have a GHC release manager who has a wider scope and can deal with some of these issue
- David basically agrees, unclear how to get there
- Longer RC period for GHC would help?
- Don’t have RCs for minor versions
- WT update
- Action items
- Julian: Figure out a way for the HLS folks to get notified when there’s a new GHC version in ghcup
- Zubin: Rotate the release manager for HLS
- Pepe: ask Patrick about our special github status
- Fendor: check that the caching system is doing some thing sensible
- GHC Medium-term priorities *
- WT status update
- Got the gitlab CI fixed up
- Get existing patches merged
- Review the 9.4 compat work that other people have been doing
- MHU & better multi-component support? Current status and is there anyone working on it?
- Needs more support in Cabal, Matthew is working on it
- Issues with flaky tests on CI
- We don’t really have a lsp-test expert to help us out
- Should we move off gitlab CI? (Julian)
- https://gist.github.com/hasufell/c26f6bb1897bf98ef73a48bb1cf9a9c4
- Move most of the release CI for HLS and Cabal to GHA from GHC Gitlab
- We don’t do it today because Gitlab supports more architectures
- Causes problems
- Multiple CI configurations for dev+release
- Not enough testing on release architectures
- Insufficient support on GHC Gitlab
- Runners are manually maintained, by multiple people
- Competition for resources on GHC Gitlab
- Big problem: Mac M1
- Github might get it but not yet
- Other minor ones:
- FreeBSD
- Might need to pay for our own runners
- … but we already have it on Gitlab!
- Could maybe hook up Moritz’s existing runners to GH also
- Would still have issues with sharing resources
- Moritz has M1 and also linux-aarch64
- Advantages of GHA
- Maintain some runners… but only the non-standard ones
- Using the same runners that build GHC ensures that HLS is build in the exact same environment as GHC
- Could use the same docker image that’s used to build GHC
- Providing one of Moritz’s runners for projects using GHA would be useful generally
- Also useful if it was available to other core projects like e.g. bytestring
- Otherwise we find out later that they don’t build when they hit GHC CI
- Don’t necessarily need it for all the HLS CI runs, just for releases
- Also useful if it was available to other core projects like e.g. bytestring
- The GHC M1 CI is broken anyway thanks to brew :(
- May ultimately want to move environment setup to nix anyway
- FreeBSD is in a bad state
- The GHC FreeBSD runner is broken for 6 months
- Matthew: FreeBSD is not actually a supported platform for GHC (!)
- Platform wishlist
- Darwin M1
- FreeBSD x86 (mostly Julian?)
- They also have aarch64 but that’s very niche
- Linux x86/aarch64
- Can do some simulation via docker
- Very memory-constrained and slow
- If we need more resources for machines we can ask the HF
- Kind of just hard to get good Macs
- Rented hardware is often unreliable
- Getting it yourself requires someone to physically handle them for you
- Actions:
- Moritz hooks up some runners to GHA
- Julian experiments with moving some of the CI config to GHA
- Moritz+Julian come up with maintenance backup plans so we don’t have a bus factor of 1 for the machines
- How is the WT work going?
- Zubin was on holiday
- More patches to come!
- Existing patches for memory usage
- Might need some benchmarking
- Will try to get them in this week
- Should have similar
- codeAction/resolve could also be useful
- Avoid computing and sending code actions
- Retrie
- Can we strip out the dependency? Seems like it’s not actually used that much
- Zubin might look into it later
- New GHC diagnostic infrastructure
- Too much CPP to gain much benefit
- Maybe multiple versions of GHC support again
- Seems very painful, status quo is also painful
- Can we make the CPP less painful?
- Current HLS still has big problems
- Chat about supporting fewer versions of GHC
- David is pro
- Michael is worried about it moving pain to supporting multiple branches
- Also slow process for features reaching people on old GHCs
- Fendor: MuniHac 7.10 - 9.10.
- Which tickets are suitable for MuniHac? Preferably, we have something for each skill-group. I am instructing a couple of people to bring a completion system to the cabal plugin.
- Extract function code action
- Might get done at MuniHac
- Zubin: can we remove snippets
- It’s a bit unreliable
- Often unclear what to do, e.g. a lens looks like a function but you never want to apply it
- Record snippets will still work
- Needed for completion item resolve
- Working on it -> Zubin
- Pepe: Dropping support for 8.6 and 8.8
- Meta is still using 8.8 but Pepe would be happy to drop it
- It’s very expensive to support lots of versions
- M: we said we would wait for a LTS, but it has been ages and I don’t think anyone will fault us
- Technically the policy says we should drop 8.10 but that seems premature
- Zubin: remember to purge hie-compat, also maybe need to tweak hie-db
- Actually do it -> Pepe
- Deprecation policy
- Michael: maybe we should stop saying we wait for LTS Stackage, instead just for “the ecosystem to catch up”
- Publicising the WT work
- Write a short blog post on the WT blog and send it to the OC subscribers -> Matthew
- Next steps: updating plugins
- Multiple home units
- Zubin has done some work for hie-bios
- Fendor has done some work in cabal, thinks there may need to be some redesign needed
- Michael: Plugin tiers
- Release retro
- More CI jobs
- Julian has done something
- More CI jobs
- LSP Types rewrite
- Haskell code generation
- https://hackage.haskell.org/package/haskell-generate (seems abandoned though)
- https://github.com/google/ghc-source-gen
- Haskell code generation
- Triaged all issues until now
- Defining a core set of plugins (MPJ)
- It would be useful so we could have a support status between “none” and “full” (all plugins; may never happen for some versions of GHC)
- Maybe need more categories?
- Core: we won’t release without this
- Tier 1: we will try not to release without this but we might have to (e.g. class plugin)
- Tier 2: best effort, depends on maintainers
-
TODO: MPJ start a discussion on github
- Status of the Opencollective proposal and the new release?
- Proposal has been sent to WT
- Some contractual details to work out due to opencollective
- They’re starting work on it soon
TODO: MPJ follow up on email thread
- GSOC progress
- Aarush has made progress on folding ranges, have agreed for the project to span a longer period
- Colten has a PR for record dot completions, just need to get it over the line
- OsPath PR
- Worried about merge conflicts with the HLS part
- It’s annoying because one of the main functions can now fail, will cause lots of errors
- Lots of confusing discussion about locales for filepaths
- Sync the progress of big PRs?
- We triaged some issues
- Some more ideas:
Attendees: pepe, zubin, Matt, sloorush
- Dumb WT work proposal written by MPJ: https://docs.google.com/document/d/1Amz038212wOQn22ACXXO_JSI5LAzwgRJAefDEHTAyJw/edit
- Pepe: looks good to me
- Pepe: could we extend it to cover more than one release?
- Zubin: we should decide on a release schedule
- Pepe&Zubin: Tie the release schedule to GHC releases?
- Matt: pay WT to automate HLS releases even more, make it easier
- Pepe: this has more value than polishing the GHC compat code
- Zubin: need to give access to upload to Haskell.org to release maintainer
- Pepe: use a Github secret to store it and make it available to the script
Attendees: michael pj, fendor, maerwald, ailrun
Agenda:
- What Labels do we actually need?
- Cleanup old labels
- Triage new issues
Minutes: (reproduced, might be inaccurate)
- Goal: Remove fine-grained label tracking, as we don’t have the resources to keep them up-to-date.
- What labels are unnecessary, redundant, etc…: https://docs.google.com/document/d/14moRnBSKkbw1MrmYTPi36Z3K7YathgvtyVwzJplWqEg/edit
- Inconclusive:
- “Component: *” labels
- Very fine-grained, does someone actually use these?
- Labels should not replace a proper search engine
- GitHub Issue Search often finds unrelated issues
- “Component: *” labels
- Overview of the most important labels
- Status labels:
- status: blocked (Not actionable, because blocked by upstream/GHC etc.)
- status: in discussion (Not actionable, because discussion is still ongoing or there's no decision yet)
- status: needs info (Not actionable, because there's missing information)
- status: needs triage
- Type Labels:
- type: enhancement (New feature or request)
- type: support (User support tickets, questions, help with editor setup etc.)
- type: bug (Something isn't right: Doesn't work as intended, Documentation is missing/outdated, etc..)
- CI Label
- CI (Continuous integration, for all CI related issues)
- Guidance
-
level: easy (The issue is suited for beginners)
- We have to be careful here to not accidentally mark hard issues as easy, so we don’t discourage new contributors
- level: hard (This issue is not suited for beginners)
-
level: easy (The issue is suited for beginners)
- Priority
-
priority: high (High Priority Item)
- We omit any other priority as we don’t think it will help us in general. We won’t have any use for anything except High priority.
-
priority: high (High Priority Item)
- General Purpose
-
ZuriHac (This issue is suitable for ZuriHac Hacking sessions)
- Temporary Label
-
Performance (Issues about memory consumption, responsiveness, etc.)
- General performance issues
-
GHC (issues with particular GHC versions)
- Helpful for GHC devs
-
ZuriHac (This issue is suitable for ZuriHac Hacking sessions)
- Status labels:
Proposal: We always have to assign both, status and type labels to each issue.
Outcomes:
- Renamed old Labels with an “old_” prefix
- Deleted unused labels we don’t think are helpful
- Started migrating old labels (e.g. prefixed with “old_”) to the new labelling style
Agenda:
- David: affiliating with the HF
- Michael: results of funding allocation poll
- Poll link: https://xoyondo.com/op/sNpC1hJ1PCeixEb
- Admin link: https://xoyondo.com/op/sNpC1hJ1PCeixEb/yNJyqe4XJh
- Issue triage meeting
Minutes:
- HLS affiliating with HF
- Zubin: we already did it?
- Looks like we did
- So we can probably hand David the money
- Get Matthew to hand over permissions
- Probably fine for Matthew etc. to keep access
- Zubin: we already did it?
- What to spend the money on?
- GHC compatibility work
- Basically covered already
- Basic PR is up, how much work is left?
- Haven’t looked at plugins yet
- Getting the exactprint stuff working
- Scope of paid work doesn’t cover all the plugins?
- Maybe we could pay for this
- Not all plugins are “core”/doable, e.g. formatters
- Zubin: fixing up test suite and CI failures
- Dealing with flaky/disabled tests
- Bryjan from HF has been doing some stuff on GHC CI
- David: he’s going to be busy indefinitely
- Release management
- Zubin: a lot of the work was changelogs and bumping versions
- Hard to do in a PR since it’s unclear if it’s already been bumped since a release
- Does policeman help?
- Not updated any more, doesn’t support multi-package project
- Does policeman help?
- Also a lot of time on Windows
- Hard to do in a PR since it’s unclear if it’s already been bumped since a release
- What’s our release schedule?
- Monthly is a bit much
- Quarterly? Definitely after a new GHC version
- Let’s try and come up with this offline
- Fendor: could we make releases easier if we had better changelog management e.g. like cabal does?
- We have some automation which scrapes PRs
- Julian: maybe we could just pay someone to do it, not necessarily WT
- Knowledge/scripts are getting contributed back
- Julian: would be good to coordinate ghcup, GHC, vscode-haskell, HLS releases
- People are generally okay with paying someone to do the release when we do it
- Zubin: a lot of the work was changelogs and bumping versions
- Better diagnostics
- It’s too hard to identify why things are going wrong
- Stale state on the server
- Setup issues e.g. cradle failures
- Try to make sure that we have logs or diagnostics for common problems
- It’s too hard to identify why things are going wrong
- Pepe: hard to specify open-ended tasks
- MPJ: propose to just make a somewhat open-ended grant to WT to work on HLS with some priorities
- GHC compatibility work
- GSOC
- Colten
- Issue at the moment lies in getting the types to show up in the HIE AST
- Types seem to be getting lost in the renamer
- Might need to patch GHC, making a reproduction issue
- Maybe can do something in hie-compat?
- Might want to do completions first since they’re less likely to be blocked on GHC
- Aarush
- Working on folding ranges
- Going to try and add them to the selection range plugin with help from kokobd
- Semantic highlighting ideas
- Colten
- Action items
- Make a release policy offline
- Come up with list of “core” plugins offline
- MPJ: schedule an issue triage meeting
- MPJ: come up with a draft proposal for WT to do some work
Agenda:
- Say hi to each other
- Welcome GSOC students
- Discuss plans for Zurihac?
Minutes:
- Popular issues
- https://github.com/haskell/vscode-haskell/issues/520
- Issues with missing hie.yaml/dummy hie.yamls
- Simple stack cradle doesn’t work reliably, so we don’t do it by default?
- Cabal simple cradle works well
- Open PR to use this by default?
- https://github.com/haskell/haskell-language-server/pull/2342
- PRs that need help
- Zubin’s type class evidence PR
- https://github.com/haskell/haskell-language-server/pull/1983
- Needs tests and a rebase
- Might be a nice starter project for a GSOC student
- Zubin’s type class evidence PR
- Opencollective funds
- What do we do with it?
- Who’s responsible for it
- Matthew has the keys now, we could move it
- Provisional decision: get David to do it as the HF
- Then it looks more reuptable
- Had a summer student last year
- Fendor
- Are there obvious candidates?
- Can pay a consultancy to do stuff
- Better for boring stuff
- WT is an obvious choice but COI with Matthew
- Pepe: need to get HLS updated to the next GHC version
- Not student-friendly
- Zubin has already worked on this
- Will be recurring
- A client of WT is paying for it this time, but can’t rely on that
- Brainstorm of other stuff:
- Bunch of stuff to do for making home units work
- Finish off big existing PRs e.g. Zubin’s
- Mystery hanging issue
- Performance/memory usage
- Don’t have a clear overview
- Unclear what’s our fault what’s GHC’s fault
- Needs analysis
- Benchmark suite doesn’t seem to show leaks
- Much easier if we have example codebases to work on
- Can we make it easier for the community to help?
- Matthew is going to talk about this at Zurihac
- Better logging and monitoring
- Not useful for users, not useful for us atm
- Doing release management
- Boring and unsexy
- Maybe have multiple release managers?
- Maintenance is difficult
- Hard to coordinate getting plugins up to date
- Can we come up with a better plugin architecture?
- https://github.com/haskell/haskell-language-server/discussions/2588
- When do we drop support for plugins?
- Formatters are a big drag
- Cause a lot of hacking with our cabal.projects
- What about calling things via the CLI?
- Risk of things getting out of sync, CLI interface changing
- https://github.com/haskell/haskell-language-server/issues/411
- Try and call more tools via the CLI, to avoid pulling in more deps
- E.g. for cabal fmt plugin
- https://github.com/haskell/haskell-language-server/pull/2047
- Explore the possibility of a hook-based approach
- Zurihac
- Matthew, Fendor, and Michael are going
- Issue tracker
- Lots of setup and cradle issues
- Issue triage is a problem
- Javier used to do lots
- GHC has a monthly issue triage meeting
- Maybe we could have a triage meeting alternating with this one?
- Prioritize things
- Error improvements in GHC
- GHC errors will get codes on a website
- Error codes will have more verbose explanations
- Looks like it fits in to the LSP spec
- Action items:
- Make a list of proposals for the money and get people to vote on them (Michael)
- Follow up with the HF board to check for red flags about moving the money (David)
- Start a list of easy things to do for Zuirhac (Fendor)
- Register as a project for Zurihac (Fendor)
- Make some priority labels (Nick)