From a80ef01d3b0651ba4da30f1c22878b884f17fca5 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 26 Jul 2026 02:03:33 +0000 Subject: [PATCH 1/2] Fix broken and stale build instructions in README The build instructions from issue #1996 have gotten worse since it was filed: the liftsh script they reference no longer exists in this repository at all (the project now builds with plain sbt, per project/build.properties and .github/workflows/ci.yaml), so the documented `./liftsh +update +publish` command fails outright rather than just hitting a bad download URL. - Replace the liftsh build instructions with the actual sbt workflow used by CI (`sbt test` / `sbt publishLocal`), and drop the pointer to the Assembla wiki page, which still documents the removed liftsh script. - Swap the dead Travis CI badge/link for the GitHub Actions workflow that actually builds this repo, and fill in the previously-empty "Continuous Integration" section describing it. - Update `master` branch references (badge, SUPPORT.md/CONTRIBUTING.md/ contributors.md links) to `main`, the repository's actual default branch. - Bump the stale 3.3.0 version used in the sbt/Maven dependency examples to the current 4.0.0 release, and note Scala 3 cross-build support alongside 2.13. - Correct the "Project Organization" section: the persistence components (Mapper/Record) were removed from this repository as of Lift 4.0 and no longer exist here. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01GjZjf9sgANRdtg2WMcxba2 --- README.md | 46 ++++++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 884f06c7f..7c104e4c5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # The Lift Web Framework -[![Build Status](https://travis-ci.org/lift/framework.svg?branch=master)](https://travis-ci.org/lift/framework) +[![Build Status](https://github.com/lift/framework/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/lift/framework/actions/workflows/ci.yaml) Lift is the most powerful, most secure web framework available today. There are [Seven Things](http://seventhings.liftweb.net/) that distinguish Lift from other web frameworks. @@ -93,7 +93,7 @@ Logback if you don't already have another SLF4J logging library in place. For ex ```scala libraryDependencies ++= { - val liftVersion = "3.3.0" + val liftVersion = "4.0.0" Seq( "net.liftweb" %% "lift-webkit" % liftVersion % "compile", "ch.qos.logback" % "logback-classic" % "1.2.3" @@ -115,12 +115,13 @@ Add Lift to your `pom.xml` like so: net.liftweb lift-webkit_${scala.version} - 3.3.0 + 4.0.0 -Where `${scala.version}` is `2.13` for the 4.x series. Individual patch releases of the Scala compiler -(e.g. 2.12.2) are binary compatible with everything in their release series, so you only need the -first two version parts. +Where `${scala.version}` is `2.13` or `3` for the 4.x series, which cross-builds against both Scala +2.13 and Scala 3. Individual patch releases of the Scala compiler (e.g. 2.13.18) are binary compatible +with everything in their release series, so you only need the first version part for Scala 3, or the +first two version parts for Scala 2.13. You can learn more about Maven integration [on the wiki](http://www.assembla.com/wiki/show/liftweb/Using_Maven). @@ -147,9 +148,9 @@ We will accept issues and pull requests into the Lift codebase if the pull reque * The request adheres to our [contributing guidelines][contribfile], including having been discussed on the Mailing List if its from a non-committer. -[supfile]: https://github.com/lift/framework/blob/master/SUPPORT.md -[contribfile]: https://github.com/lift/framework/blob/master/CONTRIBUTING.md -[sigfile]: https://github.com/lift/framework/blob/master/contributors.md +[supfile]: https://github.com/lift/framework/blob/main/SUPPORT.md +[contribfile]: https://github.com/lift/framework/blob/main/CONTRIBUTING.md +[sigfile]: https://github.com/lift/framework/blob/main/contributors.md ## Project Organization @@ -165,10 +166,10 @@ likely require one or more of Lift's other components. * **web:** This component includes all of Lift's core HTTP and web handling. Including `lift-webkit` in your build process should be sufficient for basic applications and will include `lift-core` as a transitive dependency. -* **persistence:** This component includes Mapper and Record, Lift's two ORMs. While you needn't use -either and can use the ORM of your choice, Mapper and Record integrate nicely with Lift's idioms. -Mapper is an ORM for relational databases, while Record is a broader ORM with support for both SQL -databases and NoSQL datastores. + +As of Lift 4.0, the persistence components (Mapper and Record) have been removed from this +repository. If your project relies on them, pin to a 3.x release, or use another ORM of your choice +with Lift 4.0+. ### Other Repostories @@ -190,13 +191,19 @@ The [examples](https://github.com/lift/examples) repository contains the source If you simply want to use Lift in your project, add Lift as a dependency to your build system or [download the JAR files directly](https://www.liftweb.net/download). -If you wish to build Lift from source, check out this repository and use the included `liftsh` script to build some or all of the components you want. +If you wish to build Lift from source, check out this repository and build it with [sbt](https://www.scala-sbt.org/). +Lift no longer bundles a `liftsh` wrapper script, so you'll need `sbt` installed locally (the +version this repository builds against is pinned in `project/build.properties`). git clone https://github.com/lift/framework.git cd framework - ./liftsh +update +publish + sbt test + sbt publishLocal -There is [additional documentation on the wiki](http://www.assembla.com/spaces/liftweb/wiki/Building_Lift). +`sbt test` compiles and runs the test suite for every module, cross-built for both Scala 2.13 and +Scala 3 as configured in `build.sbt`. `sbt publishLocal` publishes snapshot artifacts to your local +Ivy repository (`~/.ivy2`) so other local projects can depend on them. To build or publish a single +module, prefix the command with its project name, e.g. `sbt webkit/publishLocal`. ## Additional Resources @@ -222,3 +229,10 @@ Lift is open source software released under the **Apache 2.0 license**. ## Continuous Integration +Lift is built and tested on [GitHub Actions](https://github.com/lift/framework/actions/workflows/ci.yaml) +against a matrix of supported Java (11, 17, 21) and Scala (2.13, 3) versions on every pull request and +push to `main` and the active release branches. See [`.github/workflows/ci.yaml`][ciyaml] for the +current configuration. + +[ciyaml]: https://github.com/lift/framework/blob/main/.github/workflows/ci.yaml + From f9edc4762c5c5fb144d5351cd5bf236010fcc844 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 26 Jul 2026 02:06:29 +0000 Subject: [PATCH 2/2] Address review feedback: fix cross-build claim and typo sbt test only runs against the default scalaVersion, not across crossScalaVersions like the earlier text claimed. Use sbt +test / +publishLocal (sbt's built-in cross-build alias) so the documented commands actually match the described behavior. Also fix a pre-existing "Repostories" typo in the section heading this PR already touches. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01GjZjf9sgANRdtg2WMcxba2 --- README.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 7c104e4c5..42631762a 100644 --- a/README.md +++ b/README.md @@ -171,7 +171,7 @@ As of Lift 4.0, the persistence components (Mapper and Record) have been removed repository. If your project relies on them, pin to a 3.x release, or use another ORM of your choice with Lift 4.0+. -### Other Repostories +### Other Repositories There are a variety of other repositories available on the Lift GitHub page. While many are concerned with building Lift or are build program archetypes, there are two you will probably encounter fairly frequently as a Lift user: @@ -197,13 +197,16 @@ version this repository builds against is pinned in `project/build.properties`). git clone https://github.com/lift/framework.git cd framework - sbt test - sbt publishLocal - -`sbt test` compiles and runs the test suite for every module, cross-built for both Scala 2.13 and -Scala 3 as configured in `build.sbt`. `sbt publishLocal` publishes snapshot artifacts to your local -Ivy repository (`~/.ivy2`) so other local projects can depend on them. To build or publish a single -module, prefix the command with its project name, e.g. `sbt webkit/publishLocal`. + sbt +test + sbt +publishLocal + +The leading `+` runs the command once per entry in `crossScalaVersions`, so `sbt +test` compiles and +runs the test suite for every module against both Scala 2.13 and Scala 3 as configured in `build.sbt` +(a plain `sbt test`, without the `+`, only runs against the default Scala version). Likewise, `sbt ++publishLocal` publishes snapshot artifacts for both Scala versions to your local Ivy repository +(`~/.ivy2`) so other local projects can depend on them. To build or publish a single module, prefix +the command with its project name, e.g. `sbt webkit/publishLocal` or `sbt +webkit/publishLocal` for +both Scala versions. ## Additional Resources