Comments (9)
@philderbeast thanks a lot for using Hpack!
The code in this repository is in the public domain, so you can use it for whatever purpose you want ;)
I wrote this initially out of curiosity and for experimentation. That was fun, but when I look at the cost/benefit ratio I'm not convinced that it's something I want to pursue further.
Pros:
- The ability to abstract
- More obvious escaping rules
Cons:
- Even more options now when it comes to Haskell package definitions; a contributor would have to deal with
.cabal
,package.yaml
orpackage.dhall
depending on the package he wants to contribute to - More space for bikeshedding when it comes to formatting stuff (leading vs trailing commas)
- When using Dhall it's more likely that you get git conflicts when rebasing/merging (yes, commas again)
Abstraction is a big thing, and I think it's valid to experiment with it. But as it stands for me the cost/benefit ratio is still not favorable. This is a very personal verdict and you are of course free to experiment.
This package is currently not widely used and I didn't do a good job in preventing bit rot. I can transfer maintainership to you if you want.
BTW: Do you currently do anything that can't be done with plain hpack
. From what I saw you just include stuff. I think you can achieve the same thing with Hpack's support for defaults
.
Whether it makes sense at this stage to add support for hpack-dhall
to cabal2nix
is up for @peti to decide. If it were me to make this decision I would probably wait until there is more significant user adoption.
from hpack-dhall.
I find hpack-dhall
useful and would be happy to become a maintainer of it. I'm philderbeast on hackage.
from hpack-dhall.
With flare-timing I'm keeping both package.dhall
and .cabal
files in sync and in source with hpack-dhall
. I format each package.dhall
with;
> dhall format --inplace package.dhall
from hpack-dhall.
Do you currently do anything that can't be done with plain hpack. From what I saw you just include stuff. I think you can achieve the same thing with Hpack's support for defaults.
I hadn't seen hpack-defaults. Thanks for pointing that out as an option when wanting to set up common fields.
A dhall
import can be any expression or function from any source. While I could get the same behaviour as hpack-defaults
by merging sets, I can and do do more. I am using imports for;
- general defaults for common fields
- default-extensions
- passing default-extensions as
-XExtensionName
to hlint, see GlideAngle/flare-timing#55 (comment) - toggling whether to have hlint test suites
from hpack-dhall.
@sol could you please add me as a maintainer for this package on hackage?
As for this repository, can you please transfer the ownership to me or add me as a collaborator?
from hpack-dhall.
Hey, sure, what is your Hackage username?
from hpack-dhall.
I'm philderbeast on hackage.
from hpack-dhall.
Added you. Please feel free to pick a license, I strongly suggest MIT or BSD3 though. Please also change the maintainer to yourself ;).
from hpack-dhall.
Thanks @sol. I've revised the package description, adding you as author and me as maintainer.
from hpack-dhall.
Related Issues (20)
- License not recognized as BSD-3-Clause
- Make a start on documentation.
- Show intermediate json, yaml and dhall.
- Add --help option to executables.
- Show relevant hpack options and forward these on.
- Document the module Hpack.Dhall.
- The field ordering in the rendered YAML is all over the place.
- Sort the fields of the rendered JSON.
- Real world example golden tests.
- Generated description has extra newlines in YAML. HOT 3
- With stackage nightly ghc-8.6.2 test ".dhall to dhall/stack" failed. HOT 1
- Test incompatibility with libyaml 0.1.1.0
- Collect stack files in a folder. HOT 1
- Add ci with github actions.
- Hackage build failure (deps) for `ghc-8.0.2` HOT 1
- Golden tests are brittle on the version of hpack
- Warnings for `-Wunused-imports -Wdeprecations`
- Add a prelude HOT 1
- Add option to specify output directory for cabal file HOT 5
- remove `null` from generated JSON HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hpack-dhall.