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

Clarify requirements for packages being added to the set #288

Merged
merged 3 commits into from
Apr 6, 2019
Merged

Clarify requirements for packages being added to the set #288

merged 3 commits into from
Apr 6, 2019

Conversation

JordanMartinez
Copy link
Contributor

@f-f As promised in my comment

Is there anything else we want to change here to make things clearer? For example, while pulp version may handle the "v" prefix, are there any other requirements (e.g. use semver for versioning)?

CONTRIBUTING.md Outdated
- _You should use `pulp publish` to publish your package._
The reason is that since there are two distribution methods for packages (the Bower registry and the package sets), we rely on the Bower registry to act as a "central registry of package names" for both methods, in order to prevent divergence in the ecosystem (e.g. having two different codebases for a package called "prelude")
- `bower i -p` should run successfully
All packages that are included here must first be published via `bower` with no exceptions. We want to avoid a similar situation that happened in Haskell: a split ecosystem. (If you're unfamiliar with this situation, read [Why not both](https://medium.com/@fommil/why-not-both-8adadb71a5ed) for some context. Their `cabal` is similar to our `bower` and their `stack` is similar to `spago`/`psc-package`.)
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
All packages that are included here must first be published via `bower` with no exceptions. We want to avoid a similar situation that happened in Haskell: a split ecosystem. (If you're unfamiliar with this situation, read [Why not both](https://medium.com/@fommil/why-not-both-8adadb71a5ed) for some context. Their `cabal` is similar to our `bower` and their `stack` is similar to `spago`/`psc-package`.)
All packages that are included here must first be published via `bower` with no exceptions.

AFAIK there hasn't been any split in the Haskell ecosystem: all the packages on Stackage have to be published on Hackage. They use Hackage basically in the same way we use the Bower registry.

Also I'm not sure I'd like to mention the whole Haskell packages situation: it's quite controversial there, but in here we're totally fine with it. So this risks giving the wrong impression to the reader.

It might be just me though, so I'd like to hear @justinwoo's opinion on this too

Copy link
Contributor Author

Choose a reason for hiding this comment

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

AFAIK there hasn't been any split in the Haskell ecosystem: all the packages on Stackage have to be published on Hackage. They use Hackage basically in the same way we use the Bower registry.

Oh. I'm not familiar with how Haskell's build tools work but I know this was one of those situations that affects many in that ecosystem.

Ok. Once Justin gives his feedback, we'll continue from there. If I need to delete that section, that's fine.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Yeah, I think the only relation here is kind of like how all Haskell packages are on Hackage and then consumed downstream in Stackage. Maybe there might be some kind of useful comparison in the future, but I think it would be better to just leave this out, lest we be charged with inciting holy wars in Haskell land

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ok. I've deleted that section in the latest commit.

CONTRIBUTING.md Outdated Show resolved Hide resolved
@f-f
Copy link
Member

f-f commented Mar 30, 2019

@JordanMartinez there's no requirement on using semver for versioning, since the package upgrades have to be tested anyways: semver is made by humans, but the compiler has anyways the last word on the question "does the package set compile?", so we cannot trust semver

@JordanMartinez
Copy link
Contributor Author

there's no requirement on using semver for versioning, since the package upgrades have to be tested anyways: semver is made by humans, but the compiler has anyways the last word on the question "does the package set compile?", so we cannot trust semver

@f-f Thanks for clarifying. Should I explain that in the guidelines or leave it as is? While the package sets might not care about this, bower does. As long as bower is still used as a central registry, then it matters somewhat.

@f-f
Copy link
Member

f-f commented Mar 30, 2019

@JordanMartinez

Should I explain that in the guidelines or leave it as is? While the package sets might not care about this, bower does. As long as bower is still used as a central registry, then it matters somewhat.

It does matter for bower, but it's not a requirement to get into the package-set, which is what we're detailing here. So I'd say we should not mention it in the guidelines

@JordanMartinez
Copy link
Contributor Author

Sounds good.

@f-f f-f merged commit 0ef52b9 into purescript:master Apr 6, 2019
@f-f
Copy link
Member

f-f commented Apr 6, 2019

Thanks @JordanMartinez!

@JordanMartinez JordanMartinez deleted the clarifyGuidelines branch October 3, 2020 21:28
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

Successfully merging this pull request may close these issues.

3 participants