Best name for "most-recent-version" url?

Search is failing me ... I know we discussed this recently and I believe that @spdegabrielle and @sorawee were part of the conversation, but I just can't find it. Anyhow: I do in fact see the minor error in the build process that is causing the recent URL not to be created. I may be able to fix it. My question: is recent really the best name, here? I think I kind of favor current myself. Am I missing an industry-standard name for this?

Using current would have the advantage of consistency with https://plt.cs.northwestern.edu/snapshots/current/ and https://users.cs.utah.edu/plt/snapshots/current/.

1 Like

I too am in favour of current

Hang on. URL for what?

I'm speaking of a "perma-URL" that always points to the most recent release. Specifically, one where the version such as v8.15 is replaced by current (or whatever else we decide on). I feel like I might be missing some important part of your question?

Sorry I was not clear: What is the use-case?

Will dev's automate pulling the latest Racket into their build infrastructure so they are building their apps on the current official release?

Will there be a snapshot equivalent? e.g. current snapshots with named version https://users.cs.utah.edu/plt/snapshots/current/installers/racket-8.15.0.3-aarch64-macosx-cs.dmg
be available as racket-current-aarch64-macosx-cs.dmg (current instead of version, but retaining architecture and platform)

Best

Stephen

I believe one industry equivalent is “stable”

2 Likes

I believe the use case (ugh ugh I wish I could find this thread) is that there are currently people who use mildly baroque git-checking scripts as part of a scripted upgrade process.

To answer your second question: no, I'm not thinking about any changes to the snapshot system. Indeed, this is actually just unbreaking a non-working mechanism that already exists, which uses the name recent on the download servers.

@benknoble I think you're right. Specifically, we already have a "stable" branch of the racket/racket repo, and the stable branch will build the version we're now discussing, so I think that name works well with what we already have. It also contrasts with current, which is generally (in the case of the nightly snapshots) more recent. Sold! (Well, until a higher bidder comes along anyway.)

1 Like

@jbclements:

… were part of the conversation, but I just can’t find it

It’s https://github.com/racket/racket-lang-org/issues/329

Background: this whole discussion originally started in https://github.com/racket/racket/issues/1500#issuecomment-737651380, which is really about @bogdan’s setup-racket.

Back then, setup-racket only supported the name current for the current snapshot version, in addition to absolute versions (e.g. 8.15). It’s clear that we need another name for “latest released version”. The question is what should that name be, and what is the link we can use to get an installer for setup-racket. We also preferred to not change the name current to preserve backward compatibility for setup-racket’s users.

@notjack suggested latest, which is also consistent with Racket Docker’s branch (the name latest is Docker’s convention). I found the name to be not ideal, however, because if we are to choose this, “current” (snapshot version) would be later than “latest” (latest released version), which is an oxymoron.

Bogdan eventually chose stable, to be consistent with the name in https://download.racket-lang.org/version.txt. That being said, there’s no link to installers (which now we know due to the minor error of the build process that John mentioned). So what Bogdan did is to first look up version.txt, and then use the looked up version to construct the installer link. Obviously, not having to do this would be much better.

So here are some questions that may be relevant to our quest to find the “best name”

  • Do we care about having setup-racket and Racket installer links to be consistent? What about Racket Docker? (getting setup-racket and Racket Docker to be consistent is not going to be possible though, so we definitely can’t have them all compatible).
  • https://download.racket-lang.org/version.txt actually contains two names: recent and stable. Does anyone know the difference?

My personal preference (which could change due to the answers to the above questions) is “stable”, to be consistent with setup-racket.

2 Likes

Many thanks for staying on top of this, and spending the time to summarize it! I'm going to interpret this as support for the idea of using the name stable.

FWIW, it appears that the version.txt file you refer to is generated by this code:

#lang plt-web

(require "resources.rkt" "data.rkt")

(define version.txt
  (plain #:site download-site
         (lazy (let ([v (release-version current-release)])
                 (format "~s" `((recent ,v) (stable ,v)))))))

It looks like this is essentially unchanged from the initial creation of this file by @elibarzilay back in 2010:

git show 07956b00d3d4c6ed6699cd
commit 07956b00d3d4c6ed6699cd46ce10ead3dce48d34
Author: Eli Barzilay <eli@barzilay.org>
Date:   Mon Jun 7 14:08:40 2010 -0400

    Add version indicator.
    
    original commit: 05f93bfc280eb0992e36c9f73c06b7a391a25360

diff --git a/collects/meta/web/download/version.rkt b/collects/meta/web/download/version.rkt
new file mode 100644
index 0000000..a3e3a21
--- /dev/null
+++ b/collects/meta/web/download/version.rkt
@@ -0,0 +1,6 @@
+#lang at-exp s-exp "shared.rkt"
+
+(require "data.rkt")
+
+(define version.txt
+  (plain (format "~s" `((recent ,current-version) (stable ,current-version)))))
1 Like

Ah, nice! stable and recent seem to be identical. In that case, I fully support stable.

1 Like

See Racket v8.7 Release Thread - #9 by LiberalArtist and the following few posts for details: basically, it’s a left-over from an older release model, but it needs to stay there to not break old versions when they check for updates.

2 Likes

The terminology Debian and some other Linuxes is:
unstable -- where just about anything new shows up
testing -- where things migrate to after a short delay without any
serious bugs showing up
stable -- where things hardly ever change.
Every now and then there's a development freeze in testing,
an after there are no longer any release-critical bugs
the entire testing distro gets copied to stable.
This happens every year or two.
oldstable -- for those very few people for which the stable release
still has problems.

-- hendrik

1 Like