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

Add gitlab CI #2200

Merged
merged 7 commits into from Sep 19, 2021
Merged

Add gitlab CI #2200

merged 7 commits into from Sep 19, 2021

Conversation

hasufell
Copy link
Member

@hasufell hasufell commented Sep 16, 2021

Motivation

Building FreeBSD, Darwin aarch64 (M1), Linux armv7, Linux aarch64

Currently running pipeline looks good: https://gitlab.haskell.org/maerwald/haskell-language-server/-/pipelines/40810

Questions

This will require creating a repo at https://gitlab.haskell.org under the haskell namespace (I can do that). The main question is whether it should be a proper import (with all issues) or just a mirror to build releases.

@jneira
Copy link
Member

jneira commented Sep 16, 2021

+1 for a mirror, as i think most of maintainers are used to github (but lets see their opinion)

@hasufell
Copy link
Member Author

hasufell commented Sep 16, 2021

I initialized https://gitlab.haskell.org/haskell/haskell-language-server

It's not an automatic mirror. I invited several people as maintainers. Issue tracker, PRs etc are disabled.

@jneira
Copy link
Member

jneira commented Sep 16, 2021

I initialized https://gitlab.haskell.org/haskell/haskell-language-server

It's not an automatic mirror. I invited several people as maintainers. Issue tracker, PRs etc are disabled.

great

Copy link
Member

@jneira jneira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM but i would like to know the opinion from other maintainers before merge @Ailrun @pepeiborra @michaelpj (and everyone else)

Copy link
Member

@Ailrun Ailrun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not an expert of neither of GitLab CI or nix stuff, but LGTM. Thank you for the CI improvement!

.gitlab/ci.sh Outdated Show resolved Hide resolved
Comment on lines +28 to +29
optional-packages: vendored/*/*.cabal

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's this for?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Being able to use vendored packages. If they don't exist, nothing happens. If they exist, they get picked up.

This is required because the network package is broken on M1 and needs a autoreconf (but cabal is unable to do so for you). So we do it manually and put it into this directory.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it probably deserves a comment "Used by the M1 build script"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm it is a somewhat standard way to include potential optional packages in any situation but a comment with an actual use case would be fine

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it's (evidently) not obvious to the most active maintainers of this project, it definitely needs a comment for the rest of us poor mortals :)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment could even point to the script where it's used!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You know, github has a feature to add code suggestions ;)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hasufell i hope you dont mind i've added a pair of comments directly in your branch

.gitlab/shell.nix Outdated Show resolved Hide resolved
@pepeiborra
Copy link
Collaborator

Motivation

Building FreeBSD, Darwin aarch64 (M1), Linux armv7, Linux aarch64

Currently running pipeline looks good: https://gitlab.haskell.org/maerwald/haskell-language-server/-/pipelines/40810

What is the ultimate purpose? To ensure that HLS builds in those platforms or to produce binaries for distribution?

@hasufell
Copy link
Member Author

Motivation

Building FreeBSD, Darwin aarch64 (M1), Linux armv7, Linux aarch64

Currently running pipeline looks good: https://gitlab.haskell.org/maerwald/haskell-language-server/-/pipelines/40810

What is the ultimate purpose? To ensure that HLS builds in those platforms or to produce binaries for distribution?

Building binaries. I already did and added them to GHCup manually.

@jneira jneira added the merge me Label to trigger pull request merge label Sep 17, 2021
@hasufell
Copy link
Member Author

@jneira what's with those reverse merges?

@jneira
Copy link
Member

jneira commented Sep 17, 2021

@jneira what's with those reverse merges?

they are the automatic merges made by github if you press the button to update branch with master (or made by mergifyio bot when you label it with merge me)

@michaelpj
Copy link
Collaborator

It's not an automatic mirror. I invited several people as maintainers. Issue tracker, PRs etc are disabled.

Who will keep it up to date? Are there expectations on people other than @hasufell to do anything at all with this repo? (If there are, we should write them down in the contributing section) Do we expect that the CI will always pass if the other CI passes? Could it fail if the mirror gets out of date? If so, how would we fix that?

Basically, I think it needs a section in the contributing guide that explains this stuff.

@hasufell
Copy link
Member Author

Who will keep it up to date?

Whoever does the release at the time of release preparation.

Are there expectations on people other than @hasufell to do anything at all with this repo?

Yes, whoever is involved in cutting the release.

Do we expect that the CI will always pass if the other CI passes?

I think not

Could it fail if the mirror gets out of date? If so, how would we fix that?

Not sure I understand. You'd basically push the release tag (manually or automatic, that's up to you) and the release build gets triggered. It may require some further work if you want automatic tar'ing etc.

@jneira jneira removed the merge me Label to trigger pull request merge label Sep 17, 2021
@michaelpj
Copy link
Collaborator

Not sure I understand. You'd basically push the release tag (manually or automatic, that's up to you) and the release build gets triggered. It may require some further work if you want automatic tar'ing etc.

I have no idea what most of this stuff is for - but probably neither does anyone else, which is why some documentation would be great :)

Copy link
Member

@jneira jneira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for adding those archs to ci

@jneira jneira added the merge me Label to trigger pull request merge label Sep 18, 2021
@mergify mergify bot merged commit 597bee9 into haskell:master Sep 19, 2021
cdsmith pushed a commit to cdsmith/haskell-language-server that referenced this pull request Sep 21, 2021
* Add gitlab CI

* Add comment

* Comment about vendored packages

* Add link to gitlab ci config

Co-authored-by: Javier Neira <atreyu.bbb@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
@hasufell hasufell mentioned this pull request Jan 7, 2023
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merge me Label to trigger pull request merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants