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

Amazonka 2.0 #718

Closed
endgame opened this issue Nov 28, 2021 · 61 comments
Closed

Amazonka 2.0 #718

endgame opened this issue Nov 28, 2021 · 61 comments

Comments

@endgame
Copy link
Collaborator

endgame commented Nov 28, 2021

Per the release announcement, Amazonka 2.0.0-rc1 is available for testing. The release announcement also explains how to change your cabal.project or stack.yaml file to test Amazonka in your own projects.

Because of the magnitude of the accumulated changes, we are now in a stabilisation period before we release to Hackage. During this period, we'd greatly appreciate people testing amazonka against their projects, and reporting issues against the 2.0 milestone. We are aiming for a four-week stabilisation period (which would end on 2021-12-16), but may shorten or lengthen this depending on the volume of issues raised and any impact from the holiday season.

@endgame endgame pinned this issue Nov 28, 2021
@endgame
Copy link
Collaborator Author

endgame commented Dec 12, 2021

Status update: We won't hit the the planned release date, and with Christmas nearly upon us that's going to slow everything down more. Mid-January seems more realistic. There are things I want to test by porting my work codebase to amazonka-2.0, and that work stalled a bit due to the massive outage in us-east-1 last week.

@ocharles
Copy link

Hi folks, how are things looking for a 2.0 release? There's no rush from my side, I'm just looking to plan when we can move our work codebase to aeson-2, and amazonka is one of the blockers there at the moment (though we are using 2.0 with source-repository-package)

@endgame
Copy link
Collaborator Author

endgame commented Jan 24, 2022

About time for a status update, thanks for a poke:

  • January is basically over
  • The auth refactor was a huge feature that lots of people want but needs resting.
  • Work codebase is now running on amazonka-2, so I have some confidence that things work properly
  • There are a few other things I want to get done on the 2.0 milestone.
  • There's probably enough major changes (e.g., giant auth refactor) which probably warrant another, shorter, RC round
  • I'm currently assigned to project work at work for another five weeks; after that, I'll get two weeks where I can work solidly on amazonka on work time. Until then, it's only nights and weekends for me.

I would love to say April for final 2.0 release, but we might drag out longer than that. Any chance you can pitch in a PR for any of the milestone items?

P.S.: Glad to hear you're using 2.0 with source-repository-package. I assume that it's been reasonably stable for you, since I haven't seen that many issues get filed?

@ocharles
Copy link

P.S.: Glad to hear you're using 2.0 with source-repository-package. I assume that it's been reasonably stable for you, since I haven't seen that many issues get filed?

Unfortunately, I'm not sure we actually use amazonka for anything - it's just a dependency of something else. As such, I'm not sure I can volunteer any PRs as I've never used the library 😅

@mbj
Copy link

mbj commented Jan 24, 2022

I would love to say April for final 2.0 release, but we might drag out longer than that. Any chance you can pitch in a PR for any of the milestone items?

I recommend to move some of the open milestones into post 2.0 releases. Some, to me: Appear not in the category of "needs to be done in a breaking change so should not delay 2.0".

These would IMO not cause a breaking change post 2.0 once they are addressed, to me they look like pending additions which could go into amazonka-2.0.x, or amazonka-2.1:

These milestone items, to me look more like bugfixes which have a minor breaking change character, but would from my (downstream perspective) not be counted as a breaking change, despite the fact I may have to adjust some imports:

Consequence of not considering these as blocking may be a bit earlier release, which allows downstream libraries to adapt much earlier, increasing the total value provided by amazonka-2.0.

This is my 2¢, not in any case authoritative. Just another amazonka downstream consumers perspective.

@endgame
Copy link
Collaborator Author

endgame commented Jan 24, 2022

Yeah, perhaps. It's something I'll look at once I put a chunk of time into things and see what sort of momentum I can achieve.

@magthe
Copy link

magthe commented Mar 21, 2022

I just thought I'd report that I've spent some time porting one of the services at work to use 2.0.0rc1. So far it works well. I'm particularly happy about the support for AssumeRoleWithWebIdentity (and so is our platform team as we're now down to a single service using access keys in envvars).

A few observations:

  • It was surprising to find that the newX functions aren't in the same package as the lenses to work with them. It led to these import statements to work with an SQS queue:

      import Amazonka.SQS
        ( newDeleteMessageBatch,
          newDeleteMessageBatchRequestEntry,
          newReceiveMessage,
        )
      import Amazonka.SQS.DeleteMessageBatch (deleteMessageBatch_entries)
      import Amazonka.SQS.ReceiveMessage
        ( receiveMessageResponse_httpStatus,
          receiveMessageResponse_messages,
          receiveMessage_maxNumberOfMessages,
        )
      import Amazonka.SQS.Types (message_body, message_receiptHandle)
    

    I'm neither disgusted, nor enthusiastic, just surprised.

  • The move away from a custom monad, AWS', is nice. Using resourceT directly is a win, even if the Env has to be passed around a bit.

All in all it was rather straight forward to move from 1.6 to 2.0. Very nice work!

Hopefully you'll find the time to make the official release soon.

@endgame
Copy link
Collaborator Author

endgame commented Mar 21, 2022

Thanks for the feedback. The lenses are in their own module because generic-lens and/or generic-optics are now the recommended ways to access fields in request/response records. See the use of #buckets (with -XOverloadedLabels) in the S3 example:

Just bs <- view #buckets <$> send env newListBuckets

If you don't like that, you can also use field with an explicit type application, and if you don't like that you can get all lenses for a a single service from Amazonka.<ServiceName>.Lens (e.g., Amazonka.SQS.Lens).

@ysangkok
Copy link
Contributor

ysangkok commented Mar 23, 2022

I have also patched a codebase from the now-deleted release/1.7.0 tag to the current Amazonka master, but I am not testing it since we don't have infrastructure to gradually deploy things, so I think it is too risky. The patch is 93 insertions(+), 95 deletions(-).

I would love to say April for final 2.0 release, but we might drag out longer than that.

Any chance a new estimate could be made? Because it seems like it is certain to drag on longer now. I ask because Amazonka is keeping us on Aeson 1.5, and I want to know how much effort I should put into maybe getting a new Aeson 1.5 release.

There is no rush of course, I thank you for you work. Just thought it would be useful with a new estimate if it is easy to do.

@brendanhay
Copy link
Owner

brendanhay commented Mar 23, 2022

@magthe If you're using the generated (legacy) lenses, the usage for your example is intended to be:

import Amazonka.SQS
    ( newDeleteMessageBatch,
      newDeleteMessageBatchRequestEntry,
      newReceiveMessage,
    )
import Amazonka.SQS.Lens
    ( deleteMessageBatch_entries,
      receiveMessageResponse_httpStatus,
      receiveMessageResponse_messages,
      receiveMessage_maxNumberOfMessages,
      message_body,
      message_receiptHandle
    )

@endgame
Copy link
Collaborator Author

endgame commented Mar 23, 2022

April is no longer realistic - you are right. The work on tidying up service definitions and adding the new AWS services is stalled because we currently cannot regenerate services, and I'd like @brendanhay to review #761 before I charge off and merge it. Once that's unblocked, I'll see if I can get a little momentum up. However, my life has also become significantly busier of late, which makes evening/weekend contributions more difficult. Work does let me do some Amazonka work on company time, but it's usually in the two-week blocks between six-week projects, and the next one of those isn't for another ~four weeks.

@magthe
Copy link

magthe commented Mar 24, 2022

@brendanhay: aha, I used the links in the docs to guide me to find the functions/lenses I needed. I guess that's not the way, even for legacy lenses then.

I didn't find any mention of -XOverloadedLabels or anything like #buckets (like @endgame mentioned above) in the documentation. If there is a documentation of "intended use" somewhere then I missed it. I also found no mention of there even being "legacy lenses".

Your comments make me think that maybe this is something that is difficult for users to just discover on their own. Especially when having used 1.6 somewhat casually, like I have. Well, at least it was for me 😁

Not even the first example anyone is likely to bump into, the example in Amazonka, seem to be written using the "recommended ways".

I hope I'm not coming across as confrontational. It's not my intention. Just trying to express how I approached porting to 2.0 as someone who has a complete lack of context beyond what I found in the documentation.

@brendanhay
Copy link
Owner

brendanhay commented Mar 25, 2022

This is helpful feedback, @magthe, thanks! The documentation for much of the work that has come along with 2.0 still needs improvement, and feedback like this lets us know what we should focus on.

@istathar
Copy link

We've ported a fair bit of 1.6.1 code to 2.0.0 and for the modules we are using amazonka is running fine. Your work has been great, and while I know you're wanting everything to be perfect before you upload 2.0.0 to Hackage we'd encourage you to iterate fixes and documentation as you go after the milestone release. Nothing wrong with lots of micro releases afterwards. You've done a really amazing job.

@NorfairKing
Copy link

I'm looking forward to this release as well!

@endgame
Copy link
Collaborator Author

endgame commented Aug 15, 2022

So am I. This week's objective is to regenerate bindings to existing services using latest botocore, and from there start generating bindings for the services we don't have yet.

Unfortunately, four services generate code that doesn't compile and the reasons all appear to be different. So I'll dig into that tomorrow.

@prikhi
Copy link

prikhi commented Aug 19, 2022

We've been using the following libraries in production w/ no issue for the last month or so:

  - git: https://github.com/brendanhay/amazonka/
    commit: 0ccede621e56fb6f240e4850e205cde82d0e4a4b
    subdirs:
      - lib/amazonka
      - lib/amazonka-core
      - lib/services/amazonka-sso
      - lib/services/amazonka-sts
      - lib/services/amazonka-cloudwatch
      - lib/services/amazonka-ecs
      - lib/services/amazonka-s3
      - lib/services/amazonka-ses
      - lib/services/amazonka-sns
      - lib/services/amazonka-sqs
      - lib/services/amazonka-ssm

@endgame
Copy link
Collaborator Author

endgame commented Aug 25, 2022

Thanks for the updates everyone. #806 is the PR where all current services are regenerated against latest botocore - I would appreciate it if people can test against it and report back.

#807 Adds the configuration for a bunch of new services. After this goes through, I'll generate them. That will get us up to botocore minus five or six services that don't compile (usually because of circular module imports).

@pwm
Copy link

pwm commented Aug 25, 2022

Had some down time so bumped our codebase from 51408b16b4 to 0ed63c6cc0.

We only use:

amazonka
amazonka-cognito-idp
amazonka-core
amazonka-ses
amazonka-sso
amazonka-sts
amazonka-test

It went smoothly, I only had to fix one thing which was removing dealing with a Maybe:

old: https://github.com/brendanhay/amazonka/blob/51408b16b4/lib/services/amazonka-sts/gen/Amazonka/STS/AssumeRole.hs#L925
new: https://github.com/brendanhay/amazonka/blob/0ed63c6cc0/lib/services/amazonka-sts/gen/Amazonka/STS/AssumeRole.hs#L988

then it all compiled and all our tests passed.

@dustin
Copy link

dustin commented Sep 13, 2022

Does anyone have a recipe for how I might build nix-based projects until this is in hackage? This fails with recent symbols not being present in nix builds and is making it a bit difficult to use my projects across multiple machines.

(alternatively, just releasing it or even releasing it as amazonka2 would be awesome)

@endgame
Copy link
Collaborator Author

endgame commented Sep 13, 2022

We've been using this at work with haskell.nix without such issues - can you file a bug with a minimal reproducer?

@dustin
Copy link

dustin commented Sep 13, 2022

Can you give an example of how you do this? I don't think there's much of a point in filing a bug if I'm just doing it entirely wrong.

I'm using stack (with nix) and have the following in my stack.yaml:

extra-deps:
- github: brendanhay/amazonka
  commit: e64638ae16dc6d549d6e7c21262245e29761ede7
  subdirs:
  - lib/amazonka
  - lib/amazonka-core
  - lib/services/amazonka-s3
  - lib/services/amazonka-sts
  - lib/services/amazonka-sqs
  - lib/services/amazonka-lambda

nix complains that it can't find that revision (same with current main). This works fine with regular stack, but nix-build fails. amazonka is the only dependency I have to treat differently currently since it's not in the normal package repo, so it's quite likely there's a better way to do it.

@endgame
Copy link
Collaborator Author

endgame commented Sep 13, 2022

It would help keep threads of discussion from becoming confused with each other (this issue is a bit of a mess already), and there have been similar requests for help in issues before: #750

I need to know how you are using nix (haskell.nix, nixpkgs, some other mechanism?) and a minimal reproduction repo would help a lot, as that snippet looks correct. I haven't used stack for years, as I've found it caused me more problems than it solved, so I cannot infer what exactly you are doing. Please help me so I can try and help you.

@dustin
Copy link

dustin commented Sep 13, 2022

Understood. I filed #815, but had mentioned it here specifically because closing this bug would be the least-effort way to fix this (from my side, anyway -- obviously if it were easy on your side, the bug wouldn't be open).

@endgame
Copy link
Collaborator Author

endgame commented Sep 13, 2022

I'd love for it to be on Hackage too, but there are still quite a few blockers.

@endgame
Copy link
Collaborator Author

endgame commented Oct 6, 2022

@brendanhay: aha, I used the links in the docs to guide me to find the functions/lenses I needed. I guess that's not the way, even for legacy lenses then.

I didn't find any mention of -XOverloadedLabels or anything like #buckets (like @endgame mentioned above) in the documentation. If there is a documentation of "intended use" somewhere then I missed it. I also found no mention of there even being "legacy lenses".

The specifics of how you use a generic lens library are up to you (which is why only some of the examples use them), but there's actually a recommendation in each package description:

It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.

As well as a recommendation in each request's haddock:

-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.

I think this is a funny edge case where it's harder for experienced users to notice things. Once we're back on Hackage I think it will be a lot more obvious, as these recommendations will be rendered in a much more visible way.

(FWIW, I didn't actually notice these recommendations until I was hacking on the generator and actually had to change the templates.)

@endgame
Copy link
Collaborator Author

endgame commented Oct 13, 2022

About time I gave another update. Amazonka now has bindings to every service in botocore except for two (s3control and lexv2-runtime).

In a couple of weeks I should get another couple of blocks of work-sponsored time to work on things; the goal will be to tick off a bunch of the smaller tasks that have been hanging around in the milestone for some time.

@pbrisbin
Copy link
Contributor

Thanks for the update @endgame! Sorry if you've mentioned this elsewhere but is there a list of what specifically is blocking a Hackage release? Do you think those "couple of blocks" you'll get in a couple of weeks could get the project to a release, or is there still more?

I'm interested in pitching in if I can, and would love some kind of "blocks 2.0 on Hackage" label to work against. Or is it safe to say any Issue that doesn't have the "post 2.0" label is that list?

@endgame
Copy link
Collaborator Author

endgame commented Nov 1, 2022

There are a lot of people using this repo, and it's being actively worked on. Nobody is doing crazy things like merging half-built stuff to main, so you should point at that. (This is what we do at $WORK.) Unless you are specifically affected by #755, I can't see anything there as a regression from 1.6.1. #716 has instructions for pointing at a git revision for both cabal.project and stack.yaml.

I know it's been a long road, but please bear with us, we're making steady progress. There are a few more annoying chore-type changes that really need to go into 2.0 so we don't cause gratuitous breaking with 2.1.

I have the rest of this week as work-sponsored time to dedicate to Amazonka, then a couple of weeks' leave, then another couple of weeks of work-sponsored Amazonka time, so we're getting there.

@NorfairKing
Copy link

NorfairKing commented Nov 1, 2022

@endgame Thank you for the quick answer, and the great and often thankless work ❤️

@mbj
Copy link

mbj commented Nov 2, 2022

@NorfairKing, @endgame One reasons I thought I wanted to have a release on hackage was the download time of this repo when using a git source. And than I found this neat trick (thanks @dkubb) which reduces the initial download time significantly:

- url: https://github.com/brendanhay/amazonka/archive/006563901b94ee586453855ebd73ad69442f9235.tar.gz
  subdirs:
  - lib/amazonka
  - lib/amazonka-core
  - lib/services/amazonka-cloudformation
  - lib/services/amazonka-cloudwatch
  - lib/services/amazonka-ec2
  - lib/services/amazonka-ecr
  - lib/services/amazonka-ecs
  - lib/services/amazonka-kinesis
  - lib/services/amazonka-lambda
  - lib/services/amazonka-s3
  - lib/services/amazonka-secretsmanager
  - lib/services/amazonka-sso
  - ...

From here hackage vs git is less of an issue for me than it was.

Just use the commit hash you are interested in, and on large repos such as amazonka downlaod time is now acceptable.

@NorfairKing
Copy link

@mbj

This download time problem is a missing feature in stack.
If you use this instead, it'll only download the repo once, instead of once per service:

github: brendanhay/amazonka
commit: 006563901b94ee586453855ebd73ad69442f9235
subdirs:
- ...

@mbj
Copy link

mbj commented Nov 2, 2022

This download time problem is a missing feature in stack.

yes it does not pass --depth=1 on fetch operations.

If you use this instead, it'll only download the repo once, instead of once per service.

same with passing the archive URL as I did.

@ysangkok
Copy link
Contributor

ysangkok commented Nov 2, 2022

it'll only download the repo once, instead of once per service:

There was a bug pre Stack v.2.7.5 where it'd clone multiple times: see changelog

After this fix, it only clones a repo once, even if you have multiple subdirs.

It's still gonna download the whole history though, so there is still a place for using the tarball directly (as @mbj shows) or using the github: syntax.

Were you referring to this bug, @NorfairKing ?

@mbj
Copy link

mbj commented Nov 3, 2022

or using the github: syntax

I think the github: syntax is just expanding to the git URL, which given the absence of stack passing --depth=1: creates more traffic than the archive download.

@ysangkok
Copy link
Contributor

ysangkok commented Nov 3, 2022

@mbj I don't think that's true, if I am reading the BuildPlanSpec test right. And it also doesn't explain how Amazonka is sped up in Stack 2.7.3 by switching to the github: syntax. What makes you think github: uses git to download? And why would Stack 2.7.3 using github: not be subject to the bug fixed in 2.7.5?

@mbj
Copy link

mbj commented Nov 3, 2022

@ysangkok you are right, I was to infected by other package managers I use in my assumption! Yes its equivalent and my explicit URL is just a more verbose encoding of the same semantics.

@tfausak
Copy link

tfausak commented Jun 29, 2023

Is there anything I can do to help get a release on Hackage? We've been using various workarounds (Git source, vendored tarballs, etc) at work. We can continue to use those workarounds, but it would be much nicer to simply use a version from Hackage.

@endgame
Copy link
Collaborator Author

endgame commented Jun 30, 2023

@tfausak I'd love to get this on Hackage too, but I found a pretty serious blocker this week: in the current repository state, I cannot regenerate all of amazonka any more. I've tried changing the botocore pin and pinning hashable, but whatever I do some service binding or other fails to compile.

This is a blocker because I really want to ship 2.0 as a single Hackage package containing multiple public named libraries. I want to do this because we are nearly up to 350 distinct AWS services, and about half of those are unknown to Hackage. I really don't want to camp another 100+ new names on Hackage with 2.0.

So that means I'll probably have to bring the work in #888 into the 2.0 milestone, so that a) we can keep up with botocore at all and b) so that I can rework the packaging.

Something that would be extremely valuable: making sure whatever build tool you use is ready for multiple public libraries, whether that's stack, cabal-install, nixpkgs' haskellPackages, haskell.nix, mafia, or whatever else.

@tfausak
Copy link

tfausak commented Jun 30, 2023

This is my unsolicited opinion, so take it for what it's worth (which is nothing): Please just make a release. The last release was more than four years ago. I've been following this issue and it feels like there's always "one more thing" to do before the release can go out.

Package names are cheap, and multiple public libraries are only barely supported by some tools. I'd massively prefer hundreds of amazonka-* packages over a single amazonka package with hundreds of sub-libraries. But again, that's just my opinion.

Thanks for the work that you (and other collaborators) do on this repo. I hugely appreciate it! As I said before, I'm able to use Amazonka regardless, so this basically boils down to a quality of life improvement for me.

@brendanhay
Copy link
Owner

brendanhay commented Jun 30, 2023

I'd rather ship multiple libraries (edit: packages) despite the presentational issues on Hackage. As mentioned before the build tool support for multiple public libs is quite shite. I also think regenerating to produce new service bindings (as opposed to updating existing ones) should halt until the shape/pointer related code is improved, rather than generating and being blocked on a new service not building that noone as-of-yet depends on.

@mbj
Copy link

mbj commented Jun 30, 2023

@endgame, @brendanhay is there a place where I can sponsor your work?

EDIT: I'm, blind, just found the sponsor button of @brendanhay, @endgame where is yours?

@endgame
Copy link
Collaborator Author

endgame commented Jun 30, 2023

@tfausak I sympathise, believe me. We have to do a bunch of hacks at work to make git packages work well with our tooling, and I'd rather not have to do them.

Multiple public libs came from a 2018 GSoC project, also co-incidentally about four years ago. It's not just the presentation issues on Hackage, but also that it adds more to the index for every single user to download and complicates maintenance (I still have to go through and add those bounds to the 0.0.0 packages — #915). Some pretty fundamental fixes to multiple public libs came through in cabal-3.8.1.0, but even that was nearly a year ago. Seems like nobody uses them because the build tool support isn't there, and the build tool support isn't there because nobody uses them. Personally, I think it's time for everyone to catch up to cabal, and amazonka could be a great catalyst to break the logjam. We could fix this!

@mbj Thanks for the thought, but at the moment work is semi-sponsoring me to do this, so taking sponsorship in that way probably wouldn't be appropriate. I get to do some amount of maintenance on amazonka as part of my normal duties, and a few times a year I can block out larger chunks of time (with their blessing and project manager support) to work on meatier stuff. Haven't had the chance to do that for a while, which is why things have stalled. Soon™.

@brendanhay : I was afraid that the generator was actually broken for the current botocore pin despite yesterday's hashable-1.3 pin. That doesn't seem to be the case - I have regenerated and rebuilt all services on my local machine and it seems to be fine (perhaps yesterday I hadn't re-entered the dev shell, and still had the wrong BOTOCORE var set?).

So, given that we have a working generator for this pin and have service bindings for almost everything up to a point earlier this year, here is my proposal:

  1. We get Switch from cryptonite to crypton #920 merged. There's a branch rattling through at work to switch our services over to it, so that's the test case. If it works for us then I'll merge it to main.
  2. I regenerate all services with the current nixpkgs pin and PR that. The net effect should just be re-running newer ormolu on everything, but that means we'll have a better baseline to test fundamental generator fixes. Should be able to do this today.
  3. Once those are merged, we announce 2.0 RC 2 and ask people to really take hammers to it. Before I got "let's do multiple public libraries" into my head, I'd been ready to pull the trigger on this for a while.
  4. We do a final round of checks to pull in any last-minute new regions, etc.
  5. Unless we find some really terrible things, we ship 2.0 final to Hackage.

@brendanhay what do you say to this five-step plan?

Spamming hundreds of new packages onto Hackage makes me sad, because I think the developer experience of adding build-depends: amazonka:{amazonka, core, s3, lambda} or whatever is significantly nicer, and I wish the ecosystem of Haskell build tools would just get with the program. But we'll make do with the world we actually have, not the world we wish we had.

@mbj
Copy link

mbj commented Jun 30, 2023

@endgame

Spamming hundreds of new packages onto Hackage makes me sad

Me too, but: Most people only use a small subset of the AWS services API, and from a pure user perspective: I'll not really notice the difference. Adjacent, I maintain stratosphere now that faces the same issue but not as massive (Cloudformation is not supported by all AWS services). And still plan to go with the package spam for that exact reason. The amount of inconvenience is "to small" to invest into subpackages.

@brendanhay
Copy link
Owner

I wish the ecosystem of Haskell build tools would just get with the program.

<insert-meme-here>

@endgame The five-step plan sounds good to me.

@endgame
Copy link
Collaborator Author

endgame commented Jun 30, 2023

Regenerated (reformatted) all services, pushed, merged, then rebased the crypton PR onto that so we can test it at work.

@mbj The other awkward situation we have here, which might not affect stratosphere so much: if we make a fundamental update to amazonka/amazonka-core, or we change one service binding (like the dynamodb{,-streams} custom AttributeValue type) I don't like that the version numbers for all the service bindings desync.

@tfausak Once we cut RC2, a big callout in HWN would be extremely valuable to get eyes onto it before we go to Hackage.

@mbj
Copy link

mbj commented Jun 30, 2023

@endgame Thanks for that additional color, makes sense.

@tfausak
Copy link

tfausak commented Jun 30, 2023

Thanks @endgame! That all sounds great to me. I'd be happy to include Amazonka's RC2 in Haskell Weekly.

@endgame
Copy link
Collaborator Author

endgame commented Jul 4, 2023

An aside, re: having a single package with public libraries:

Most people only use a small subset of the AWS services API, and from a pure user perspective: I'll not really notice the difference.

It does add to the Hackage index which everyone has to download, while a unified package with sublibraries increases the download size for amazonka users only, and they will still only have to compile a subset of the code.

@endgame
Copy link
Collaborator Author

endgame commented Jul 4, 2023

@brendanhay I've merged the crypton branch, so now we have steps one and two of the five-step plan. If you're happy, can you please tag and announce 2.0 RC 2? We can reuse most of the RC1 announcement, I think.

I think a three-to-four-week final RC period is probably good here. I have some stuff on at the moment which will make a large demand of my time with little warning, but I can't say exactly when that will be.

@endgame
Copy link
Collaborator Author

endgame commented Jul 4, 2023

We will definitely want to pick up the new version of aeson before we go to Hackage (#923) but I'm happy to go to RC without it.

@brendanhay
Copy link
Owner

Great - I'll write up the announcement and do a tag/release shortly, providing StarLink decides to grace me with coverage today/tomorrow.

@brendanhay
Copy link
Owner

Please see the 2.0.0-rc2 release and related discussion.

@endgame
Copy link
Collaborator Author

endgame commented Jul 10, 2023

Fixed discussion link

@endgame
Copy link
Collaborator Author

endgame commented Jul 27, 2023

https://hackage.haskell.org/package/amazonka-2.0

@endgame endgame closed this as completed Jul 27, 2023
@endgame endgame unpinned this issue Jul 27, 2023
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

No branches or pull requests