-
Notifications
You must be signed in to change notification settings - Fork 32
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
Experience report: Upgrading from 0.4.0.0 to 0.5.1.0 #170
Comments
Thanks so much for this @gasi! |
Do you know of a guide for git tagging? Sorry, not too familiar with it. |
For the literal, are you not able to literally use a literal? :-) e.g. (with |
Absolutely! Depending on whether you prefer
To tag previous releases: Find roughly when version in Cabal file was bumped
Tag commit
Push tag
This will generate a new release here https://github.com/morphismtech/squeal/releases and will allow people to locally check out a particular version, e.g. |
Ha, indeed — thanks! Just fixed it: zoomhub/zoomhub@ab9ae0b#diff-ed4a782deea6e05bcc7afab1fab4ec8dR345 I have a feeling there are other things I am not doing optimally, but I figured I’ll ask you specifics once I ship this:
In the meantime, if anything stands out, feel free to ping me 😄 |
one thing I noticed, you used |
Awesome — thanks for the tip! You’re right, none of my migrations need Re: naming of Re: combining definitions. I have to admit, figuring out how to append multiple definitions took me some sleuthing to find the
This is the first time I am using BTW, I’ve been writing down questions/feedback for Squeal as I go and one item was:
This has totally been solved by |
Absolutely, the endomorphisms in any category always form a monoid and that should be true in Haskell too. instance schemas0 ~ schemas1 => Semigroup (Definition schemas0 schemas1) where (<>) = (>>>)
instance schemas0 ~ schemas1 => Monoid (Definition schemas0 schemas1) where mempty = id |
literals are getting some love in #169 |
Oh, thanks @gasi ! It's always cool to have some live Squeal code. I support the idea of tagging. One of the plus side of using github release UI is that it lets you add some documentation for each release, so we could split the release notes for each release version. |
Sounds cool. I don’t understand category theory yet but thanks for sharing. I actually gave it a shot writing Based on my understanding of the compile errors, it seems like Re: literals love. Awesome — keep it up! ❤️ Update: I finally got my app working end-to-end using Squeal + PostgreSQL last night (after working on it sporadically for a couple of years). I’ll share it once it’s tested and stable. Thanks again for the awesome library and documentation 😄 |
I use Haskell basically so I can have an excuse to keep using category theory 😄 Hopefully, I'll be cutting an announcement for free-categories soon. |
NOTE: This is an experience report, not a bug report / feature request. I couldn’t find any community or support channel, so I figured I’d share here. Feel free to close/move if there is a better place for it.
First of all: Thanks for the wonderful
squeal
library. It gives me a fuzzy feeling to be able to write composable and type-safe SQL for my web app ZoomHub. I think it does a good job highlighting some of the possibilities of adopting Haskell ❤️I just wrapped up an afternoon upgrading my app from Squeal 0.4.0.0 to 0.5.1.0. Overall, I really like the improvements, e.g.
Query_
andManipulation_
abstractingTuplePG
andRowPG
Same
values. AFAICT, this is a huge improvement over other libraries I’ve used in the past, e.g.opaleye
(though they might have caught up with this):insertInto
replacinginsertRow
andinsertQuery
literal
values. Before, I had to hack it using an unwieldyExpression
pureMigration
, etc.Here’s the link that outlines how to upgrade from Squeal 0.4.0.0 to 0.5.1.0 for a non-trivial app: zoomhub/zoomhub@ab9ae0b
I used the release notes as well as the raw source to figure out what changes were needed. Updating the API usage was fairly straightforward. What took me longer is figuring out how to update certain type signatures, e.g.
and
I hope this is helpful for others who want to upgrade to the latest release.
P.S. Minor request: Would it be possible to
git tag -a …
the various releases? That would have helped me comparing code between different versions. Thanks 🙇The text was updated successfully, but these errors were encountered: