kaliber-scala / play-s3

S3 module for Play
MIT License
119 stars 49 forks source link

Play 2.7 upgrade #97

Closed mellster2012 closed 5 years ago

mellster2012 commented 5 years ago

Due to https://github.com/AsyncHttpClient/async-http-client/issues/1578, this PR automatically detects play 2.7 and updates the content-type header with the charset attribute for the signature using the same mechanism as asynchttpclient so there are no signature mismatches when posting/putting files to S3. See also https://discuss.lightbend.com/t/aws-signature-mismatch-with-signed-payloads-after-upgrading-to-play-ahc-ws-2-7-0-play-s3/3510/4

EECOLOR commented 5 years ago

https://github.com/kaliber-scala/play-s3/issues/90

You could fork the repository if you want. If you want I can refer to your version in the README

mellster2012 commented 5 years ago

This PR was generated from our fork. Are you looking for somebody to take over the whole project? Why not keep merging PRs if nobody objects after some time for others to review. Maybe for now you can release 9.0.1 and refer to it in the README for those who want to to use play-s3 with play 2.7+. Thanks!

EECOLOR commented 5 years ago

The problem is that I haven't released versions in quite a while. Other contributors released that last few versions.

We are not using actively using Scala anymore, so the best way to move forward would be for someone else to take over the project if they want to continue using it.

EECOLOR commented 5 years ago

Maybe @jorkzijlstra or @lucianenache could release a new version for you.

jorkzijlstra commented 5 years ago

I haven't released anything Play related in the last 2 years since I moved over to akka-http. I will have a look into merging and releasing this hopefully somewhere this week

jorkzijlstra commented 5 years ago

@EECOLOR @mellster2012

I just merge the PR and found out that the unit tests are failing due to several issues. The commit of the Play 2.7 upgrade seems to be the cause of this.

Test output: test-response.txt

My Play knowledge is far from existing and I don't have any time to have a proper look now (just became a father)

Since the tests are failing I can't release a new version now. I also did not revert back to a previous version since that codebase is as broken as this one.

Who can have a look into fixing the tests?

mellster2012 commented 5 years ago

@jorkzijlstra you will need access to an empty aws s3 bucket and src/test.resources/application.conf with a play reference configuration plus a few additional entries to properly test:

"testBucketName": "", "aws": { "accessKeyId": "", "secretKey": "", }

or

testBucketName= aws.accessKeyId= aws.secretKey=

That way the tests pass locally - since we don't want to expose aws creds here I assume we can release while skipping the tests via removing the runTest phase from ReleaseKeys.releaseProcess. I'm not using sbt much but can attempt the release for version 10.0.0.

jorkzijlstra commented 5 years ago

I have added a PR to fix the tests: https://github.com/kaliber-scala/play-s3/pull/99

As for you releasing a new version, that would be fine by me. However is required quite a setup to be able to do so and as far as I know I'm the only one who has configured it.

When execution sbt release it will run the tests and if they succeed release a new version. This release will consist of a few steps. For these addionall step your need to have the following configured:

Once everything is setup correctly a release will show up in Maven a few hours after you execute sbt release

EECOLOR commented 5 years ago

We don't have a maven repository anymore.

As stated before: we don't support this repository anymore.

We tried to hand over releases (granting Github, Bintray and Maven access), but I don't think it wise for future users of this project. While I am willing to grant someone the correct permissions I think it would be best to hand this project over to that person: change the organisation part of the package and release to maven central through their own accounts.

Once that is set up I could archive this repo with a README that points to the new location.

jorkzijlstra commented 5 years ago

@EECOLOR there is a maven repository for Kaliber: https://mvnrepository.com/artifact/net.kaliber This is where the older version where pushed.

I agree its best to hand over his repo to a new maintainer since both of us aren't even using it anymore.

That being said I was just able to run the tests successfully. However the GPG signing is specifically setup on an old laptop of mine for which currently I have no access to, but Ill release the version 10.0.0 later this week.

EECOLOR commented 5 years ago

@EECOLOR there is a maven repository for Kaliber: https://mvnrepository.com/artifact/net.kaliber

Sorry, I was mistakenly thinking about https://jars.kaliber.io/

but Ill release the version 10.0.0 later this week

Awsome!

mellster2012 commented 5 years ago

Thanks! If no other contenders come forward I'll start thinking about taking it over as AFAIK there isn't currently any good alternative play-s3 module out there.

jorkzijlstra commented 5 years ago

I have just released version 10.0.0 to Bintray (https://bintray.com/beta/#/kaliber-scala/maven/play-s3/10.0.0)

In the next few hours Bintray should sync up with maven and it should be available on https://mvnrepository.com/artifact/net.kaliber/play-s3

jorkzijlstra commented 5 years ago

So I noticed that version 10.0.0 still wasn't available on maven.

So last time I released a version was September 2017 and I had forgotten that I needed to click a sync button in Bintray. It said it sync so it should now pop-up in the next few hours