diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index b41a099..f24ab28 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -3,14 +3,14 @@ # SPDX-License-Identifier: MPL-2.0 steps: - - command: nix-build crossref-verifier.nix + - command: nix-build xrefcheck.nix label: Library and tests - command: nix-build label: Executable artifact_paths: - - "result/bin/crossref-verify" - - command: nix run -f. -c crossref-verify - label: Crossref-verify itself + - "result/bin/xrefcheck" + - command: nix run -f. -c xrefcheck + label: Xrefcheck itself - command: nix run -f $(nix eval -f nix/sources.nix --raw nixpkgs) reuse -c reuse lint label: REUSE lint - command: diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 80994be..f93d010 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -8,7 +8,7 @@ ## Reporting issues -Please [open an issue](https://github.com/serokell/crossref-verifier/issues/new/choose) if you find a bug or have a feature request. +Please [open an issue](https://github.com/serokell/xrefcheck/issues/new/choose) if you find a bug or have a feature request. Note: you need to login (e. g. using your GitHub account) first. Before submitting a bug report or feature request, check to make sure it hasn't already been submitted diff --git a/README.md b/README.md index 80be9ef..9c647c8 100644 --- a/README.md +++ b/README.md @@ -4,17 +4,17 @@ - SPDX-License-Identifier: MPL-2.0 --> -# Crossref-verifier +# Xrefcheck -[![Build status](https://badge.buildkite.com/75461331a6058b334383cdfca1071dc1f908b70cf069d857b7.svg?branch=master)](https://buildkite.com/serokell/crossref-verifier) +[![Build status](https://badge.buildkite.com/75461331a6058b334383cdfca1071dc1f908b70cf069d857b7.svg?branch=master)](https://buildkite.com/serokell/xrefcheck) -Crossref-verifier is a tool for verifying local and external references in repository documentation that is quick, easy to setup, and suitable to be added to CI. +Xrefcheck is a tool for verifying local and external references in repository documentation that is quick, easy to setup, and suitable to be added to CI. Output sample ### Motivation -As the project evolves, links in documentation have a tendency to get broken. This is usually because of: +As the project evolves, links in documentation have a tendency to get broken. This is usually because of: 1. File movements; 2. Markdown header renames; 3. Outer sites ceasing their existence. @@ -45,18 +45,18 @@ Both relative and absolute local links are supported out of the box. * [url-checker](https://github.com/paramt/url-checker) - GitHub action which checks links in specified files. * [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) - advanced checker for `HTML` files. -## Build instructions [↑](#crossref-verifier) +## Build instructions [↑](#xrefcheck) Run `stack install` to build everything and install the executable. -### CI and nix [↑](#crossref-verifier) +### CI and nix [↑](#xrefcheck) -To build only the executables, run `nix-build`. You can use this line on your CI to use crossref-verifier: +To build only the executables, run `nix-build`. You can use this line on your CI to use xrefcheck: ``` -nix run -f https://github.com/serokell/crossref-verifier/archive/master.tar.gz -c crossref-verify +nix run -f https://github.com/serokell/xrefcheck/archive/master.tar.gz -c xrefcheck ``` -Our CI uses `nix-build crossref-verifier.nix` to build the whole project, including tests and Haddock. +Our CI uses `nix-build xrefcheck.nix` to build the whole project, including tests and Haddock. It is based on the [`haskell.nix`](https://input-output-hk.github.io/haskell.nix/) project. You can do that too if you wish. @@ -66,31 +66,31 @@ You can do that too if you wish. There is a [bug](https://github.com/input-output-hk/haskell.nix/issues/335) which causes us to put some redundancy into Nix files: 1. [`nix/sources.json`](nix/sources.json) lists all such dependencies that we obtain using `git`. It specifies concrete git revisions and SHA256 checksums. -2. [`crossref-verifier.nix`](crossref-verifier.nix) lists all such dependencies as well, but without revisions. +2. [`xrefcheck.nix`](xrefcheck.nix) lists all such dependencies as well, but without revisions. As a consequence, you may have to update these files when you update [`stack.yaml`](stack.yaml). You can use [`niv update`](https://github.com/nmattia/niv#update) to update [`nix/sources.json`](nix/sources.json). -## Usage [↑](#crossref-verifier) +## Usage [↑](#xrefcheck) To find all broken links in a repository, run from within its folder: ```sh -crossref-verify +xrefcheck ``` To also display all found links and anchors: ```sh -crossref-verify -v +xrefcheck -v ``` For description of other options: ```sh -crossref-verify --help +xrefcheck --help ``` ## Configuring @@ -98,31 +98,31 @@ crossref-verify --help Configuration template (with all options explained) can be dumped with: ```sh -crossref-verify dump-config +xrefcheck dump-config ``` Currently supported options include: * Timeout for checking external references; * List of ignored folders. -## For further work [↑](#crossref-verifier) +## For further work [↑](#xrefcheck) - [ ] Support for non-Unix systems. - [ ] Support link detection in different languages, not only Markdown. - [ ] Haskell Haddock is first in turn. -## Issue tracker [↑](#crossref-verifier) +## Issue tracker [↑](#xrefcheck) We use GitHub issues as our issue tracker. You can login using your GitHub account to leave a comment or create a new issue. -## For Contributors [↑](#crossref-verifier) +## For Contributors [↑](#xrefcheck) Please see [CONTRIBUTING.md](/.github/CONTRIBUTING.md) for more information. -## About Serokell [↑](#crossref-verifier) +## About Serokell [↑](#xrefcheck) -Crossref-verifier is maintained and funded with ❤️ by [Serokell](https://serokell.io/). +Xrefcheck is maintained and funded with ❤️ by [Serokell](https://serokell.io/). The names and logo for Serokell are trademark of Serokell OÜ. We love open source software! See [our other projects](https://serokell.io/community?utm_source=github) or [hire us](https://serokell.io/hire-us?utm_source=github) to design, develop and grow your idea! diff --git a/default.nix b/default.nix index fa420cc..8abb21f 100644 --- a/default.nix +++ b/default.nix @@ -2,4 +2,4 @@ # # SPDX-License-Identifier: MPL-2.0 -(import ./crossref-verifier.nix {}).components.exes.crossref-verify +(import ./xrefcheck.nix {}).components.exes.xrefcheck diff --git a/package.yaml b/package.yaml index 8d63518..704f719 100644 --- a/package.yaml +++ b/package.yaml @@ -2,9 +2,9 @@ # # SPDX-License-Identifier: MPL-2.0 -name: crossref-verifier +name: xrefcheck version: 0.1.0.0 -github: serokell/crossref-verifier +github: serokell/xrefcheck license: MPL-2.0 license-file: LICENSE author: Kostya Ivanov, Serokell @@ -15,7 +15,7 @@ extra-source-files: - README.md - src-files/* -description: Please see the README on GitHub at +description: Please see the README on GitHub at default-extensions: - AllowAmbiguousTypes @@ -90,7 +90,7 @@ library: source-dirs: src executables: - crossref-verify: + xrefcheck: main: Main.hs source-dirs: exec ghc-options: @@ -99,14 +99,14 @@ executables: - -with-rtsopts=-N - -O2 dependencies: - - crossref-verifier + - xrefcheck tests: - crossref-verifier-tests: + xrefcheck-tests: main: Main.hs source-dirs: tests dependencies: - - crossref-verifier + - xrefcheck - hspec - QuickCheck build-tools: diff --git a/release/default.nix b/release/default.nix index e0c661f..32388e2 100644 --- a/release/default.nix +++ b/release/default.nix @@ -4,16 +4,16 @@ { pkgs ? import (import ../nix/sources.nix).nixpkgs { } }: let - executable = (import ../crossref-verifier.nix { + executable = (import ../xrefcheck.nix { static = true; - }).components.exes.crossref-verify; + }).components.exes.xrefcheck; joinByBasename = name: paths: pkgs.runCommandNoCC name { } ('' mkdir $out '' + pkgs.lib.concatMapStrings (path: '' ln -s ${path} $out/${builtins.baseNameOf path} '') paths); -in joinByBasename "crossref-verifier-release" [ +in joinByBasename "xrefcheck-release" [ "${executable}/bin" ../LICENSES ../README.md diff --git a/src/Crv/CLI.hs b/src/Crv/CLI.hs index 0f78931..a3b77b0 100644 --- a/src/Crv/CLI.hs +++ b/src/Crv/CLI.hs @@ -19,7 +19,7 @@ import Data.Version (showVersion) import Options.Applicative (Parser, ReadM, command, eitherReader, execParser, fullDesc, help, helper, hsubparser, info, infoOption, long, metavar, option, progDesc, short, strOption, switch, value) -import Paths_crossref_verifier (version) +import Paths_xrefcheck (version) import Crv.Core @@ -52,7 +52,7 @@ data Options = Options -- | Where to try to seek configuration if specific path is not set. defaultConfigPaths :: [FilePath] -defaultConfigPaths = ["./crossref-verifier.yaml", "./.crossref-verifier.yaml"] +defaultConfigPaths = ["./xrefcheck.yaml", "./.xrefcheck.yaml"] optionsParser :: Parser Options optionsParser = do @@ -99,7 +99,7 @@ dumpConfigOptions = hsubparser $ short 'o' <> long "output" <> metavar "FILEPATH" <> - value ".crossref-verifier.yaml" <> + value ".xrefcheck.yaml" <> help "Name of created config file." totalParser :: Parser Command @@ -109,7 +109,7 @@ totalParser = asum ] versionOption :: Parser (a -> a) -versionOption = infoOption ("crossref-verify-" <> (showVersion version)) $ +versionOption = infoOption ("xrefcheck-" <> (showVersion version)) $ long "version" <> help "Show version." diff --git a/crossref-verifier.nix b/xrefcheck.nix similarity index 92% rename from crossref-verifier.nix rename to xrefcheck.nix index aeae92a..5d28146 100644 --- a/crossref-verifier.nix +++ b/xrefcheck.nix @@ -13,12 +13,12 @@ let project = hn.stackProject { src = hn.haskellLib.cleanGit { src = ./.; }; modules = [{ - packages.crossref-verifier = { + packages.xrefcheck = { # More failures during CI == Less failures in runtime! postHaddock = '' [[ -z "$(ls -A dist/doc/html)" ]] && exit 1 || echo "haddock successfully generated documentation"''; package.ghcOptions = "-Werror"; - components.exes.crossref-verify.configureFlags = + components.exes.xrefcheck.configureFlags = with nixpkgs.pkgsStatic; lib.optionals static [ "--disable-executable-dynamic" @@ -42,4 +42,4 @@ let subdir = "code/prelude"; }]; }; -in project.crossref-verifier +in project.xrefcheck