This repository has been archived by the owner on Feb 6, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 98
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #310 from bitsondatadev/archive-readme
Update README.md tp reflect it is archived
- Loading branch information
Showing
1 changed file
with
6 additions
and
165 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,170 +17,11 @@ | |
- under the License. | ||
--> | ||
|
||
# Apache Iceberg Documentation Site | ||
# Apache Iceberg Documentation Site (Archived) | ||
|
||
This repository contains the documentation for [Apache Iceberg](https://github.com/apache/iceberg). | ||
It's built with [Hugo](https://gohugo.io/) and hosted at https://iceberg.apache.org. | ||
> [!WARNING] | ||
> This repository is an archive for the old Apache Iceberg documentation. This was moved to the [main Iceberg repository](https://github.com/apache/iceberg/tree/main/site). | ||
> Please submit any website or documentation related [issues](https://github.com/apache/iceberg/issues) and [pull requests](https://github.com/apache/iceberg/pulls) to the | ||
> main repository. | ||
# Structure | ||
|
||
The Iceberg documentation site is actually constructed from two hugo sites. The first, is the landing page. The second site, | ||
is the documentation site which contains the full Iceberg documentation, including the javadoc. The landing page and | ||
documentation sites are completely self-contained in the `./landing-page` and `./docs` directories, respectively. | ||
The Javadocs are in the `./javadoc` directory. | ||
|
||
## Relationship to the Iceberg Repository | ||
|
||
All markdown pages that are specific to an Iceberg version are maintained in the iceberg repository. All pages common across all version | ||
releases are kept here in the iceberg-docs repo. A few exceptions are the markdown files that can be found in the `format` folder in | ||
the iceberg repository and contains markdown files that are copied into `./landing-page/content/common/`. | ||
|
||
`apache/iceberg` | ||
- The `docs` folder in the [Iceberg repository](https://github.com/apache/iceberg) contains all the markdown docs used by the **versioned** docs site. | ||
- The `format` folder contains some items that are common across all versions, such as the Iceberg format specification. | ||
|
||
`apache/iceberg-docs` | ||
- The `docs/content/docs` folder is the target folder when copying the docs over during a version release | ||
- The `landing-page/content/common` folder is where you can find the common markdown files shared across all versions | ||
|
||
During each new release, the release manager will: | ||
1. Copy the contents under `format` in the iceberg repo to `./landing-page/content/common/` in the `main` branch | ||
2. Create a branch in this repo from main named for the release version | ||
3. Copy the contents under `docs` in the iceberg repo to `./docs/content/docs` in the **release** branch | ||
4. Generate the javadocs for the release and copy them into the `javadoc` directory in the release branch | ||
5. Update the latest branch HEAD to point to the release branch HEAD | ||
|
||
# How to Contribute | ||
|
||
## Submitting Pull Requests | ||
|
||
Changes to the markdown contents for **version** specific pages should be submitted directly in the Iceberg repository. | ||
|
||
Changes to the markdown contents for common pages should be submitted to this repository against the `main` branch. | ||
|
||
Changes to the website appearance (e.g. HTML, CSS changes) should be submitted to this repository against the `main` branch. | ||
|
||
Changes to the documentation of old Iceberg versions should be submitted to this repository against the specific version branch. | ||
|
||
In summary, you can open a PR against where you find the related markdown file. With the exception of `spec.md`, there are no duplicate | ||
markdown files between the `master` branch in the iceberg repo and the `main` branch in the iceberg-docs repo. For changes to `spec.md`, | ||
PRs should be opened against the iceberg repo, not the iceberg-docs repo. | ||
|
||
## Reporting Issues | ||
|
||
All issues related to the doc website should still be submitted to the [Iceberg repository](https://github.com/apache/iceberg). | ||
The GitHub Issues feature of this repository is disabled. | ||
|
||
## Running Locally | ||
|
||
Clone this repository to run the website locally: | ||
```shell | ||
git clone [email protected]:apache/iceberg-docs.git | ||
cd iceberg-docs | ||
``` | ||
|
||
To start the landing page site locally, run: | ||
```shell | ||
(cd landing-page && hugo serve) | ||
``` | ||
|
||
To start the documentation site locally, run: | ||
```shell | ||
(cd docs && hugo serve) | ||
``` | ||
|
||
If you would like to see how the latest website looks based on the documentation in the Iceberg repository, you can copy docs to this repository by: | ||
```shell | ||
rm -rf docs/content/docs | ||
cp -r <path to iceberg repo>/docs docs/content/docs | ||
cp -r <path to iceberg repo>/format/* landing-page/content/common/ | ||
``` | ||
|
||
## Scanning For Broken Links | ||
|
||
If you'd like to scan for broken links, one available tool is linkcheck that can be found [here](https://github.com/filiph/linkcheck). | ||
|
||
# How the Website is Deployed | ||
|
||
**Note**: If you are a release manager looking to release a new version of the website as part of an Iceberg release, | ||
please refer to the [Documentation Release](https://iceberg.apache.org/how-to-release/#documentation-release) section | ||
of the **How to Release** page. | ||
|
||
## Landing Page Deployment | ||
|
||
The landing page site is automatically deployed to the root of the `asf-site` branch by the `deploy-landing-page` | ||
job in the [deployment workflow](./.github/workflows/deploy.yml). There is only a single version of the landing | ||
page site, and the `deploy-landing-page` job only runs on commits to the `main` branch. | ||
|
||
## Docs Deployment | ||
|
||
The docs site is automatically deployed to the `docs` directory in the asf-site branch, into a sub-directory | ||
named after the branch where the commit occurred. This is performed by the `deploy-docs` job in the | ||
[deployment workflow](./.github/workflows/deploy.yml). The job deploys the docs site on commits to any branch | ||
**except** `main`. A branch is maintained for each Iceberg version. If the job runs and the directory does not | ||
yet exist in the `asf-site` branch, it will be created. | ||
|
||
Additionally, the contents of the `javadoc` directory is deployed to a `javadoc/<branch_name>` directory in | ||
the `asf-site` branch. | ||
|
||
### Latest Docs | ||
In [./docs/redirect/index.html](./docs/redirect/index.html), a redirect meta tag exists to forward `/docs` | ||
and `/latest` to `/docs/latest`. | ||
|
||
## `asf-site` Branch Structure | ||
|
||
The `asf-site` branch structure is the following: | ||
``` | ||
. | ||
├── docs | ||
│ ├── 0.12.1 | ||
│ │ └── <Full Docs Site @0.12.1> | ||
│ ├── latest | ||
│ │ └── <Full Docs Site @latest> | ||
│ └── index.html <-- Includes a redirect to 0.12.1 which is the latest version | ||
├── javadoc | ||
│ ├── 0.12.1 | ||
│ │ └── <Full javadoc site @0.12.1> | ||
│ └── latest | ||
│ └── <Full javadoc Site @latest> | ||
└── <Full Landing Page Site> | ||
``` | ||
|
||
A non-`main` branch commit deploys the docs site into a new sub-directory in the | ||
`asf-site` branch's `docs` directory, as well as copies the javadoc directory into a new sub-directory | ||
in the `asf-site` branch's `javadoc` directory. | ||
|
||
A `main` branch commit deploys the landing page site **only** and overwrites the landing page site at | ||
the root of the `asf-site` branch. | ||
|
||
## Redirects | ||
|
||
Redirects within one of the two sites can easily be done using the `aliases` keyword in the YAML Front Matter. | ||
You can read more about this Hugo URL Management feature [here](https://gohugo.io/content-management/urls/#yaml-front-matter). | ||
|
||
For root level redirects that are outside of both sites, the `./redirects` directory contains pages with redirect `meta` tags. | ||
These are all deployed at the root level of the `asf-site` branch by the `Deploy redirects` step in the [deployment workflow](./.github/workflows/deploy.yml). | ||
|
||
## Testing Both Sites Locally | ||
|
||
In some cases, it's useful to test both the landing-page site and the docs site locally. Especially in situations | ||
where you need to test relative links between the two sites. This can be achieved by building both sites with custom | ||
`baseURL` and `publishDir` values passed to the CLI. You can then run the site with any local live server, such as the | ||
[Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer) extension for VSCode. | ||
|
||
First, change into the `landing-page` directory and build the site. Use `-b` and `-d` to set `baseURL` and `publishDir`, respectively. | ||
``` | ||
cd landing-page | ||
hugo -b http://localhost:5500/ -d ../public | ||
``` | ||
|
||
Next, change into the `docs` directory and do the same thing. Remember that the docs-site is deployed to a `docs/<VERSION>` url, relative to the landing-page site. Since the landing-page was deployed to `../publish` in the example | ||
above, the example below uses `../public/docs/latest` to deploy a `latest` version docs-site. | ||
``` | ||
cd ../docs | ||
hugo -b http://localhost:5500/docs/latest/ -d ../public/docs/latest | ||
``` | ||
|
||
You should then have both sites deployed to the `public` directory which you can launch using your live server. | ||
|
||
**Note:** The examples above use port `5500`. Be sure to change the port number if your local live server uses a different port. | ||
See https://github.com/apache/iceberg/pull/9520 for more details. |