kevin-wayne / algs4

Algorithms, 4th edition textbook code and libraries
http://algs4.cs.princeton.edu/code/
GNU General Public License v3.0
7.41k stars 2.68k forks source link

Bintray will shutdown in May 1st 2021 #102

Open josemgu91 opened 3 years ago

josemgu91 commented 3 years ago

Bintray service will be shutdown in May 1st 2021: Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter

Is there any plan to publish the library in Maven Central or another repository?

avmohan commented 3 years ago

Is there an alternate place where we can point maven now that bintray is down?

bookyue commented 3 years ago

Maybe jitpack will be the solution for temporary. FYI, here is the configuration snippet for Gradle.

repositories {
    mavenCentral()
    maven {
        url "https://jitpack.io"
    }
}

dependencies {
    implementation 'com.github.kevin-wayne:algs4:master-SNAPSHOT'
}

Maven can also work with jitpack.

josemgu91 commented 3 years ago

Sounds great! As far as I've seen, JitPack works with GitHub Releases or Git tags, so I think it'd be easier to just create the tags or GitHub Releases and rely on JitPack instead.

asarkar commented 1 year ago

Why not just publish to Maven Central and call it good, instead of nonstandard repos that may go away any day?

kevin-wayne commented 9 months ago

If someone wants to volunteer to setup a Maven Central library, make me a co-admin, and setup a workflow to keep it relatively up-to-date, I'm happy to endorse/link from here. I haven't used Maven.

asarkar commented 9 months ago

@kevin-wayne Part of the process to publish to Maven Central requires setting up a temporary redirect rule for the domain the package is published under. It appears that this repo is currently using edu.princeton. If you don’t have the admin access to that domain, another domain will need to be chosen. I believe com.github.something is also a common choice, but I don’t know what the process for that is. Presumably admin/collaborator access to the GitHub repository.

I’m familiar with the publishing process and have published my own OSS to Maven Central. I can help with this process, but as I mentioned, will most likely need to be granted collaborator access. I’ll take a look and post back with more information this week.

Note that the domain is only for Maven, the code can continue to use the existing package, although I’ll say that can be pretty confusing.

kevin-wayne commented 9 months ago

I'd like to keep the edu.princeton.cs.algs4 package name. I don't have admin access to edu.princeton but do have access to algs4.cs.princeton.edu website (e.g., to setup a temporary redirect rule).

asarkar commented 9 months ago

IMHO, algs4.cs.princeton.edu seems too specific for a group id, since it can only be used for this repo, and nothing else. I found this Sonatype ticket, which uses io.github.<username>, and the verification process seems to be creating a new repo under the same user account. If you choose to do that, the group id will be io.github.kevin-wayne or com.github.kevin-wayne.

Whichever option you choose, please create a Sonatype JIRA ticket by cloning from the ticket I linked to above. Once verification is complete, you'll be given a username/password, using which we will be able to publish to Maven Central. There's a fair bit of plumbing needed to do that automatically from GitHub, but I can help with that, and no external support should be needed for that.

bookyue commented 9 months ago

@kevin-wayne Why not just keep it simple and using jitpack instead of publishing to Maven Central library.

  1. Jitpack runs steadily for years and works seamlessly with github repo
  2. It could keep the jar package up-to-date to codebase, OR just to stay some specific version if you wish[^1]

FYI:

    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>

    <dependency>
        <groupId>com.github.kevin-wayne</groupId>
        <artifactId>algs4</artifactId>
        <version>-SNAPSHOT</version>
    </dependency>

[^1]: requires a version tag or commit id

romulus-ai commented 1 month ago

Is there a solution meanwhile? It seems the package is not available anymore, I've included it like this in gradle for around 4 year now:

// https://mvnrepository.com/artifact/edu.princeton.cs/algs4
implementation("edu.princeton.cs:algs4:1.0.4")