diff --git a/readme.md b/readme.md index d248444..6bb41ed 100644 --- a/readme.md +++ b/readme.md @@ -20,9 +20,17 @@ _Iridescence_ implements several algorithms for working with colors represented - calculate perceptual deltas between colors -## Availability +## Availability Plan -Iridescence has not yet been published as a binary. +Iridescence has not yet been published. The medium-term plan is to build Iridescence +with [Fury](/propensive/fury) and to publish it as a source build on +[Vent](/propensive/vent). This will enable ordinary users to write and build +software which depends on Iridescence. + +Subsequently, Iridescence will also be made available as a binary in the Maven +Central repository. This will enable users of other build tools to use it. + +For the overeager, curious and impatient, see [building](#building). ## Getting Started @@ -153,6 +161,7 @@ There is no support for transparency. + ## Status Iridescence is classified as __maturescent__. For reference, Scala One projects are @@ -164,26 +173,62 @@ categorized into one of the following five stability levels: - _dependable_: production-ready, subject to controlled ongoing maintenance and enhancement; tagged as version `1.0.0` or later - _adamantine_: proven, reliable and production-ready, with no further breaking changes ever anticipated -Projects at any stability level, even _embryonic_ projects, are still ready to -be used, but caution should be taken if there is a mismatch between the -project's stability level and the importance of your own project. +Projects at any stability level, even _embryonic_ projects, can still be used, +as long as caution is taken to avoid a mismatch between the project's stability +level and the required stability and maintainability of your own project. Iridescence is designed to be _small_. Its entire source code currently consists of 441 lines of code. ## Building -Iridescence can be built on Linux or Mac OS with [Fury](/propensive/fury), however -the approach to building is currently in a state of flux, and is likely to -change. +Iridescence will ultimately be built by Fury, when it is published. In the +meantime, two possibilities are offered, however they are acknowledged to be +fragile, inadequately tested, and unsuitable for anything more than +experimentation. They are provided only for the necessity of providing _some_ +answer to the question, "how can I try Iridescence?". + +1. *Copy the sources into your own project* + + Read the `fury` file in the repository root to understand Iridescence's build + structure, dependencies and source location; the file format should be short + and quite intuitive. Copy the sources into a source directory in your own + project, then repeat (recursively) for each of the dependencies. + + The sources are compiled against the latest nightly release of Scala 3. + There should be no problem to compile the project together with all of its + dependencies in a single compilation. + +2. *Build with [Wrath](https://github.com/propensive/wrath/)* + + Wrath is a bootstrapping script for building Iridescence and other projects in + the absence of a fully-featured build tool. It is designed to read the `fury` + file in the project directory, and produce a collection of JAR files which can + be added to a classpath, by compiling the project and all of its dependencies, + including the Scala compiler itself. + + Download the latest version of + [`wrath`](https://github.com/propensive/wrath/releases/latest), make it + executable, and add it to your path, for example by copying it to + `/usr/local/bin/`. + + Clone this repository inside an empty directory, so that the build can + safely make clones of repositories it depends on as _peers_ of `iridescence`. + Run `wrath -F` in the repository root. This will download and compile the + latest version of Scala, as well as all of Iridescence's dependencies. + + If the build was successful, the compiled JAR files can be found in the + `.wrath/dist` directory. ## Contributing -Contributors to Iridescence are welcome and encouraged. New contributors may like to look for issues marked -beginner. +Contributors to Iridescence are welcome and encouraged. New contributors may like +to look for issues marked +[beginner](https://github.com/propensive/iridescence/labels/beginner). -We suggest that all contributors read the [Contributing Guide](/contributing.md) to make the process of -contributing to Iridescence easier. +We suggest that all contributors read the [Contributing +Guide](/contributing.md) to make the process of contributing to Iridescence +easier. Please __do not__ contact project maintainers privately with questions unless there is a good reason to keep them private. While it can be tempting to @@ -192,8 +237,9 @@ audience, and it can result in duplication of effort. ## Author -Iridescence was designed and developed by Jon Pretty, and commercial support and training is available from -[Propensive OÜ](https://propensive.com/). +Iridescence was designed and developed by Jon Pretty, and commercial support and +training on all aspects of Scala 3 is available from [Propensive +OÜ](https://propensive.com/). @@ -201,14 +247,16 @@ Iridescence was designed and developed by Jon Pretty, and commercial support and The word _iridescent_, defined as "having a play of changeable colors", also describes the functionality of Iridescence. -In general, Scala One project names are always chosen with some rationale, however it is usually -frivolous. Each name is chosen for more for its _uniqueness_ and _intrigue_ than its concision or -catchiness, and there is no bias towards names with positive or "nice" meanings—since many of the -libraries perform some quite unpleasant tasks. +In general, Scala One project names are always chosen with some rationale, +however it is usually frivolous. Each name is chosen for more for its +_uniqueness_ and _intrigue_ than its concision or catchiness, and there is no +bias towards names with positive or "nice" meanings—since many of the libraries +perform some quite unpleasant tasks. -Names should be English words, though many are obscure or archaic, and it should be noted how -willingly English adopts foreign words. Names are generally of Greek or Latin origin, and have -often arrived in English via a romance language. +Names should be English words, though many are obscure or archaic, and it +should be noted how willingly English adopts foreign words. Names are generally +of Greek or Latin origin, and have often arrived in English via a romance +language. ## Logo @@ -216,5 +264,6 @@ The logo illustrates a color wheel. ## License -Iridescence is copyright © 2023 Jon Pretty & Propensive OÜ, and is made available under the -[Apache 2.0 License](/license.md). +Iridescence is copyright © 2024 Jon Pretty & Propensive OÜ, and +is made available under the [Apache 2.0 License](/license.md). + diff --git a/src/core/colors.scala b/src/core/colors.scala index 8ee229e..a9a61f2 100644 --- a/src/core/colors.scala +++ b/src/core/colors.scala @@ -1,5 +1,5 @@ /* - Iridescence, version [unreleased]. Copyright 2023 Jon Pretty, Propensive OÜ. + Iridescence, version [unreleased]. Copyright 2024 Jon Pretty, Propensive OÜ. The primary distribution site is: https://propensive.com/ diff --git a/src/core/conversions.scala b/src/core/conversions.scala index a8b84fc..ef5c6b7 100644 --- a/src/core/conversions.scala +++ b/src/core/conversions.scala @@ -1,5 +1,5 @@ /* - Iridescence, version [unreleased]. Copyright 2023 Jon Pretty, Propensive OÜ. + Iridescence, version [unreleased]. Copyright 2024 Jon Pretty, Propensive OÜ. The primary distribution site is: https://propensive.com/ diff --git a/src/core/extension.scala b/src/core/extension.scala index f51c068..210e8e6 100644 --- a/src/core/extension.scala +++ b/src/core/extension.scala @@ -1,5 +1,5 @@ /* - Iridescence, version [unreleased]. Copyright 2023 Jon Pretty, Propensive OÜ. + Iridescence, version [unreleased]. Copyright 2024 Jon Pretty, Propensive OÜ. The primary distribution site is: https://propensive.com/ diff --git a/src/core/profile.scala b/src/core/profile.scala index 36c3fe4..a8313b9 100644 --- a/src/core/profile.scala +++ b/src/core/profile.scala @@ -1,5 +1,5 @@ /* - Iridescence, version [unreleased]. Copyright 2023 Jon Pretty, Propensive OÜ. + Iridescence, version [unreleased]. Copyright 2024 Jon Pretty, Propensive OÜ. The primary distribution site is: https://propensive.com/ diff --git a/src/test/tests.scala b/src/test/tests.scala index b4ede06..11687ba 100644 --- a/src/test/tests.scala +++ b/src/test/tests.scala @@ -1,5 +1,5 @@ /* - Iridescence, version [unreleased]. Copyright 2023 Jon Pretty, Propensive OÜ. + Iridescence, version [unreleased]. Copyright 2024 Jon Pretty, Propensive OÜ. The primary distribution site is: https://propensive.com/