Skip to content

Commit

Permalink
website: updates
Browse files Browse the repository at this point in the history
  • Loading branch information
ilg-ul committed Oct 8, 2024
1 parent 825c1cb commit 9b4c064
Show file tree
Hide file tree
Showing 5 changed files with 92 additions and 10 deletions.
18 changes: 18 additions & 0 deletions website/docs/faq/_common/_flatpack-snap.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{/* DO NOT EDIT! */}
{/* Automatically generated from xbb-helper/templates/docusaurus/common. */}

import Link from '@docusaurus/Link';

{/* ------------------------------------------------------------------------ */}

<details>
<summary>Flatpack & Snap also promise universal packages, why not use them?</summary>

The short answer is… _“because they run only on GNU/Linux”_.

Both [Flatpack](https://flatpak.org) and [Snap](https://snapcraft.io)
hold promise as the future of application distribution. While they may
eventually achieve this, they are currently specific to GNU/Linux, with
very little chance of expanding to other platforms.

</details>
21 changes: 21 additions & 0 deletions website/docs/faq/_common/_nixos.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{/* DO NOT EDIT! */}
{/* Automatically generated from xbb-helper/templates/docusaurus/common. */}

import Link from '@docusaurus/Link';

{/* ------------------------------------------------------------------------ */}

<details>
<summary>Nix also provides reproducible builds, why not use it?</summary>

The short answer is… _“because of Windows”_.

[Nix](https://nixos.org/) is a remarkable project that carefully
controls versions down to individual libraries. However, it relies
on file links, which are either unavailable or unreliable on Windows.

As a result, Nix is currently only available on GNU/Linux and, with
some limitations, on macOS. Additionally, mastering the Nix language
requires significant effort.

</details>
50 changes: 47 additions & 3 deletions website/docs/getting-started/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ cross-platform (Windows, macOS, GNU/Linux) binary
distribution of CMake,
aimed at reproducible builds.

<details>
<summary>What are reproducible builds?</summary>

To be **reproducible**, an operation must remain stable over time and
across different environments. In other words, if builds are repeated
after some time, possibly on a different machine or platform, the
resulting behavior must be functionally equivalent.

</details>

<Overview/>

The open source **xPack CMake** project is hosted on GitHub as
Expand All @@ -41,6 +51,39 @@ this project also includes the

<UpgradeNotice/>

## xPacks

<details>
<summary>What the heck are xPacks? Please, not yet another package format!</summary>

**xPacks** are general purpose multi-version software packages.

There are two types of xPacks:

- **source xPacks** (that install source files, usually libraries) and
- **binary xPacks** (that install executables/binary files, usually tools).

The xPacks project **does NOT introduce a new package format**; instead,
it uses **the same format as npm**, which is a collection of files/folders
and a `package.json` file with the package metadata. Additionally,
installing binary xPacks also installs the archives with the platform specific
binaries (such as `.tar.gz` for Unix or `.zip` for Windows).

Also, xPacks can be installed from the
same repositories as **npm** packages, whether public or private.

xPacks are managed by **[xpm](https://xpack.github.io/xpm/)**
(the xPack Project Manager),
a program that complements the **[npm](https://docs.npmjs.com/cli/)** CLI (the
popular JavaScript package manager),
with new language-neutral features.

In short, xPacks are just a way to automate installing source libraries and
tools.

</details>


## Features

All binaries are:
Expand Down Expand Up @@ -70,7 +113,7 @@ procedure; the same procedure is used for all major
platforms (**x64 Windows**, **x64 macOS**, **arm64 macOS**, **x64 GNU/Linux**, **arm64 GNU/Linux**, **arm GNU/Linux**)
- multiple versions of the same package can be installed at the same time on
the same system
- no need to worry about dependent libraries, all are included
- no need to worry about dependent libraries, they are all included
- significantly lighter and easier to use than Docker images that provide
similar functionality and are GNU/Linux centric
- projects can be tied to specific tools versions; this provides a good
Expand All @@ -82,8 +125,9 @@ procedure; the same procedure is used for all major

## Install

The binaries can be installed automatically as **binary xPacks** or manually as
**portable archives**.
The executables and other related files can be installed automatically with
**xpm** via the **binary xPacks** or manually by downloading the
**platform specific archives**.

The details of installing the **xPack CMake** on various platforms are
presented in the
Expand Down
2 changes: 1 addition & 1 deletion website/docs/install/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import Testing from './_testing.mdx';

The **xPack CMake** can be installed automatically, using the `xpm` command
(the recommended method), or manually, by downloading and unpacking one of the
portable archives.
platform specific archives.

## Automated install

Expand Down
11 changes: 5 additions & 6 deletions website/src/components/HomepageFeatures/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import clsx from 'clsx';
import Heading from '@theme/Heading';
import styles from './styles.module.css';
import Link from '@docusaurus/Link';

type FeatureItem = {
title: string;
Expand All @@ -28,10 +29,7 @@ const FeatureList: FeatureItem[] = [
Svg: require('@site/static/img/mosaic.svg').default,
description: (
<>
By design, <b>multiple versions</b> of the same tools can be
installed at the same time on the same
system. The supported platforms are: <b>Windows</b>, <b>macOS</b>, <b>GNU/Linux</b>.
The tools include all required libraries and can be installed in any folder.
The <b>xPack Framework</b> aims to automate the installation of <b>multiple versions</b> of development tools that are otherwise not easily available in common software distributions, across multiple platforms (<b>Windows</b>, <b>macOS</b>, <b>GNU/Linux</b>).
</>
),
},
Expand All @@ -40,7 +38,7 @@ const FeatureList: FeatureItem[] = [
Svg: require('@site/static/img/check-badge.svg').default,
description: (
<>
The xPack binaries can be added to projects
The binary xPacks can be added to projects
as <b>development dependencies</b>,
and conveniently installed with <code>xpm install</code>.
This feature also ensures reproducibility, which is particularly
Expand All @@ -53,7 +51,8 @@ const FeatureList: FeatureItem[] = [
Svg: require('@site/static/img/globe.svg').default,
description: (
<>
The <b>xpm</b> tool complements <b>npm</b> with
The <b><Link to="https://xpack.github.io/xpm/">xpm</Link></b> CLI tool
complements <b><Link to="https://docs.npmjs.com/cli/">npm</Link></b> with
several extra features specific to <b>C/C++ projects</b>.
This allows the
binary xPacks to nicely integrate into the Node.js ecosystem,
Expand Down

0 comments on commit 9b4c064

Please sign in to comment.