Git Product home page Git Product logo

curator's Introduction

The commercial Haskell group is a special interest group for companies and individuals interested in commercial usage of Haskell. It is composed primarily of three different things:

  • A mailing list for discussions
  • A wiki to write down more concrete ideas after discussing them on the mailing list
  • A Github organization for sharing and collaborating on code

The primary purpose here is to foster discussion and encourage collaboration. This group is currently just starting, and many aspects of its purpose and workflows are yet to be decided. We strongly encourage everyone interested to get involved now and be part of making this group a success. Some concrete goals for this group include:

  • Improve the quality of open source Haskell tooling and libraries to meet commercial requirements.
  • Broaden the library coverage provided by the open source Haskell world.
  • Increase documentation in the Haskell ecosystem, including both API docs (Haddocks) and tutorials/cookbooks.
  • Identify obstacles to Haskell adoption and devise strategies and roadmaps to overcome them.
  • Share information on requirements so that open-source contributors can focus their contributions in areas of greatest need or opportunity
  • Publicize Haskell successes (and available tools/solutions) both inside and outside the Haskell community

FAQ

  • Question: How is this different from the Industrial Haskell User Group (IHG)?
  • Answer: To join the IHG you pay and that's joining into a pool of work which gets done. This model is good because it guarantees that things will get accomplished, but it also has its limitations. Commercial Haskell is free and has no paid for pool of work. Companies must figure out how they want to collaborate to accomplish common interests. The two groups are largely complementary, and companies are encouraged to join both.

Membership

The following is a list of members of the group. Everyone is welcome to be part of the mailing list and participate in the Wiki. If you'd like to join more officially, please send a pull request adding yourself or your company in the list below. There are no requirements - financial or otherwise - on members of the group. But you should be using Haskell in a commercial/industrial setting, interested in doing so, or interested in helping those who are.

(Please try to keep the lists in alphabetical order.)

Companies

  • Anchor
  • Applikativ
  • Assertible
  • Borders
  • Beautiful Destinations
  • ByteAlly
  • Capital Match
  • ChaosGroup
  • Chordify
  • CircuitHub
  • Commonwealth Bank
  • DigitalX
  • Elsen
  • Extensibl
  • Facebook
  • Fairy Tale - Artificial General Intelligence Solutions
  • Formal Land
  • FP Complete
  • FPInsight
  • Front Row Education
  • Helium Systems
  • Hooky, Inc
  • Infinipool
  • Iris Connect
  • Keera Studios
  • Kite & Lightning
  • LexisNexis Risk Solutions
  • Lindenbaum
  • Lumi Guide
  • Madriska Inc.
  • Microsoft
  • Midroll
  • MyFansDemand
  • Picus Security
  • Pivot Cloud
  • Prezi
  • Rheo Systems
  • Scoompa
  • Scrive
  • Scyfy Technologies
  • Silk
  • SimplyRETS
  • Snowdrift.coop
  • Soostone
  • Stack Builders
  • Standard Chartered
  • Stitcher
  • Suite Solutions
  • SumAll
  • Swift Navigation
  • Systor Vest
  • thoughtbot
  • Tree.is
  • Tsuru Capital
  • Turing Jump
  • Tweag I/O
  • UpHere
  • VaryWell
  • Vengit Kft.
  • VFILES
  • Virtual Forge
  • Wagon
  • Wellposed
  • Well-Typed
  • WhiteCity Code

Individuals

  • Adam Bergmark
  • Adam Foltzer
  • Adam Gundry
  • Aistis Raulinaitis
  • Alex Babkin
  • Alex Lang
  • Alexander Abushkevich
  • Alexander Thiemann
  • Alexandr Kurilin
  • Alfredo Di Napoli
  • Alp Mestanogullari
  • Andor Penzes
  • Andres Löh
  • Andy Gill
  • Arnaud Bailly
  • Augusto Dias
  • Aycan iRiCAN
  • Bas de Haas
  • Bas van Dijk
  • Ben Ford
  • Ben Moseley
  • Ben Sherman
  • Bert Añasco
  • Bill Laboon
  • Blake Rain
  • Brad Ediger
  • Bryan Richter
  • Carter Schonwald
  • Charles Cooper
  • Chris Allen
  • Chris Done
  • Chris Dornan
  • Christopher Armstrong
  • Christopher Reichert
  • Cody Reichert
  • Colin King
  • Daniel Vigovszky
  • Daniel YU
  • David Johnson
  • Denis Kasak
  • Denis Shevchenko
  • Dennis J. McWherter, Jr.
  • Duncan Coutts
  • Edward Haigh
  • Edward Kmett
  • Emanuel Borsboom
  • Eric Fode
  • Erik Hesselink
  • Ethan Glasser-Camp
  • Fábián Tamás László
  • Fergus Noble
  • Finn Espen Gundersen
  • Flavio Villanustre
  • Franklin Chen
  • Fuzz Leonard
  • Giovanni Cappellotto
  • Greg Weber
  • Greg Wiley
  • Harendra Kumar
  • Ian Graves
  • Ian-Woo Kim
  • Ilya Zubkov
  • Ivan Perez
  • Jared Tobin
  • Jason Hickner
  • Jasper Van der Jeugt
  • Jesus Gonzalez
  • Jon Sterling
  • José Pedro Magalhães
  • Julian Arni
  • Junji Hashimoto
  • Jürgen Keck
  • Junyoung Clare Jang
  • JP Smith
  • Kwang Yul Seo
  • Kyle Marek-Spartz
  • Liyang HU
  • Luke Hoersten
  • Luke Iannini
  • Manuel Chakravarty
  • Mark Daly
  • Mathieu Boespflug
  • Matt DeLand
  • Mattias Lundell
  • Michael Baikov
  • Michael Boone
  • Michael Gilliland
  • Michael Snoyman
  • Michael Steele
  • Mike Craig
  • Mikkel Christiansen
  • Moritz Angermann
  • Neil Bartlett
  • Neil Mitchell
  • Nikita Karetnikov
  • Niklas Hambüchen
  • Nikos Baxevanis
  • Njagi Mwaniki
  • Noon van der Silk
  • Oleg Grenrus
  • Ozgun Ataman
  • Pat Brisbin
  • Patrick Flor
  • Patrick Mylund Nielsen
  • Pawel Stasiak
  • Pedro Rodrigues
  • Philipp Kant
  • Ray Qiu
  • Rehno Lindeque
  • Rémi Vion
  • Remy Goldschmidt
  • Renzo Carbonara
  • Revence Kalibwani
  • Rick Owens
  • Roel van Dijk
  • Rui Azevedo
  • Ryan Booker
  • Sahil Kharb
  • Sharif Olorin
  • Sibi Prabakaran
  • Simon Marlow
  • Stephen Diehl
  • Steven Shaw
  • Theunis Kotze
  • Thierry Bourrillon
  • Tim Adams
  • Toby Goodwin
  • Tristan Webb
  • Vincent Hanquez
  • Willem van den Ende
  • Yitz Gale

curator's People

Contributors

andreasabel avatar bergmark avatar borsboom avatar chreekat avatar chrisdone avatar felixminom avatar hsyl20 avatar josed92 avatar juhp avatar psibi avatar qrilka avatar sjakobi avatar snoyberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

curator's Issues

Malformed YAML can produce confusing errors

When a user supplies curator with malformed YAML, it returns the parse errors from the yaml package verbatim, with little to no additional context.

For example, given this malformed input to build-constraints.yaml:

# Constraints for brand new builds
packages:
  "Alice Roberts" <[email protected]> @aroberts":

...curator will produce the following error (or similar):

curator: InvalidYaml (Just (YamlParseException {yamlProblem = "did not find expected key", yamlContext = "while parsing a block mapping", yamlProblemMark = YamlMark {yamlIndex = 388, yamlLine = 11, yamlColumn = 18}}))

It's entirely reasonable that this issue is outside of the scope of curator, since it would rely on yaml returning more structured information for us to turn into a more meaningful response.

This was just reported in commercialhaskell/stackage#5520, and I figured this would be a better place to open a discussion.

rejecting incorrectly-placed constraints.yaml fields

The range field should be under source in constraints.yaml (for LTS etc).

However it is possible to put it in the wrong place, ie not under source, which then does nothing (or rather is a time-bomb for the following week's lts).
It would be nice to fail parsing in that case, or liberally (probably harder) allow range there.
Perhaps a warning about unknown fields could also help if not there, maybe also harder.

Feature RFC: build-constraints.yaml view commands

Add some curator commands that reads build-constraints.yaml

  • curator view-package <package>
  • curator view-maintainer <maintainer>

Format could be similar to what I wanted in #20

This doesn't require any changes to build-constraints.yaml.

Changing the format (explicit comments, issue links, grouping...) would allow us to get more information out of these commands, but I'll stick that in another issue.

'text' flags not included in generated snapshots

I think the curator is not generating flags for text. The issue, I believe, is that text is not included in build-constraints.yaml as a package, and so Curator.Stackage.convert doesn't look at its flags at all.

However if I patch Curator.Stackage.convert to consider package-flags separately it would then have to include text in Constraints.consPackages (which is probably undesired (?) because text ships with ghc).

So I guess Constraints should get some additional field in which to store flags? And they can then be removed from PackageConstraints?

Related issues:
commercialhaskell/stack#5307
commercialhaskell/stackage#5409

distro upload to Hackage failing with IncompleteHeaders

For a good while Stackage distro uploads to Hackage have been failing like this:

:
To github.com:commercialhaskell/stackage-snapshots
   3eb56ec..cdae8cd  HEAD -> master
Uploading Hackage distro for snapshot.yaml
Uploading as Hackage distro: Stackage
curator: HttpExceptionRequest Request {
  host                 = "hackage.haskell.org"
  port                 = 443
  secure               = True
  requestHeaders       = [("Authorization","<REDACTED>"),("Content-Type","text/csv")]
  path                 = "/distro/Stackage/packages.csv"
  queryString          = ""
  method               = "PUT"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
}
 IncompleteHeaders
Fri Jan 24 18:00:28 UTC 2020

I am not clear what the exact cause is.

hide stack build warnings

When building snapshots with curator the volume of ghc warning output is often quite unmanageable.
I think we should suppress warnings output. eg a recenty nightly snapshot output over 200k lines of warnings.

See also commercialhaskell/stack#5566 for related context.

We can try experimenting with --no-dump-logs or dump-logs:.

Add latest version info to reporting

E.g. I got this output when trying to re-enable tasty

tasty-1.4.1 ([changelog](http://hackage.haskell.org/package/tasty-1.4.1/changelog)) [...] is out of bounds for:
[...]
- [ ] tasty-ant-xml-1.1.7 (>=0.10 && < 1.4). [...]. Used by: library

this lead me to believe that i needed to disable tasty-ant-xml, but there was an upper bound on it that can be removed instead.

Would help if the output was something like

tasty-1.4.1 ([changelog](http://hackage.haskell.org/package/tasty-1.4.1/changelog)) [...] is out of bounds for:
[...]
- [ ] tasty-ant-xml-1.1.7 (>=0.10 && < 1.4). [...]. Used by: library (Later version available: 1.1.8)

build-constraints.yaml RFC: Move grouping/formatting/comments into the YAML structure

When curator parsers build-constraints.yaml (using the yaml package)
we lose information about grouping/formatting/comments. This means
that views (#21) are missing information.

If we add this information to the YAML structure we would be able to add some cool tooling, like:

  • List all mentions of a github issue
  • List all packages by github issues
  • List all packages with a "GHC 9" comment
  • (assuming github integration) Check if a referenced issues has been
    closed (we could enrich the output if you pass --github)

This would also allow us to have curator commands that modify the
file, e.g. curator re-enable Agda, curator upper-bound "#5587" "network<3.1.2.0". However, this requires us to stick to this new
format and never add comments. So we'd probably need to wait with this
to make sure that the new format is expressive enough and not
cumbersome, so we don't feel the need/urge to escape it.

We don't need to touch the maintainer area much for this. A new
maintainer adding a package can still do it in the exact same way, but
we'd want to be able to add comments / issue links for a package.

@DanBurton wrote in #20, this may still apply:

One maintainer downside to this is that the place that maintainers
modify to add packages looks more complex. Instead of just listing
their packages under their name, they now see a bunch of fields and
need to worry about which field names are valid and what they mean
and whether they are expected to customize these fields for each of
their packages. For the uninitiated it makes adding your own
packages appear to be less approachable.

@DanBurton do you think this would still be an issue if maintainers
can add packages as they do today? We could have some example under
"Add your package" in README.md to clarify that this is the default:

Example of adding packages:
"My Name [email protected] @MyGitHubHandle":

  • package1
  • package2

We should be able to add do this package by package / constraint by constraint, to not have to do a big migration. We can keep using comments and linebreaks for grouping as an escape hatch as long as we don't have scripts that re-write the file.

Format examples:

# supercedes "Stackage upper bounds", can also be used for GHC upgrades and other batch operations.
# Doesn't need to be in a separate top level entry, but it feels cleaner to me.
constraints:
  "optparse-applicative 0.16":
     - issue: https://github.com/commercialhaskell/stackage/issues/5597
     - comment: Hello
     - constraints: # `constraints:` can be optional if it's the only property
       - optparse-applicative < 0.16
       - optparse-generic < 1.4
       - turtle < 1.5.21
  "GHC 9":
    - Agda < 0
    - cabal-rpm < 0
    - entropy < 0
skipped-tests:
  "Outdated dependencies":
    comment: These can periodically be checked for updates.
    packages: # `packages:` can be optional if it's the only property
      - package: time-compat 
        comment: base-compat 0.11
      - package: http-media
        comment: base-4.13
      - package: simple-vec
        comment: ghc 8.10
      - static-text # `package:` can be optional if it's the only property
      - monad-par
      - package: avers
        comment: via base16-bytestring
        issue: https://github.com/commercialhaskell/stackage/issues/5649

curator does not find ghc-x.y.z

curator: Can't get proper GHC version: The program 'ghc' version ==9.6.3 is required but the version found at /usr/local/bin/ghc is version 9.8.1

Would be great if curator would also look for ghc-9.6.3 (maybe even first!), not just for ghc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.