Compare commits

...

10 commits

Author SHA1 Message Date
4eb40cbcb5 [#] Build the site in Forgejo Actions
Signed-off-by: Vitaliy Potyarkin <v.potyarkin@yadro.com>
2024-08-28 13:48:35 +03:00
21680ed723 [#] Store hugo binary in versioned path
This will simplify runner cache invalidation
when we will start building the site with CI

Signed-off-by: Vitaliy Potyarkin <v.potyarkin@yadro.com>
2024-08-28 13:48:35 +03:00
6f46df233a [#21] Fix SDK repo link
Link was leading to the outdated repo blocked by GitHub

Signed-off-by: Stanislav Bogatyrev <s.bogatyrev@yadro.com>
2023-07-12 15:38:00 +03:00
52453748c5 [#5] Update table look
Signed-off-by: Anastasiya Shamray <a.shamray@yadro.com>
2023-07-07 13:24:34 +03:00
d35dd93c22 [#9] Update headers levels 2023-05-29 15:27:46 +00:00
0142347054 [#9] Add table of contents 2023-05-29 15:27:46 +00:00
57aa0c1084 [#9] Update theme
Fixes ToC and adds other visual improvements.

Signed-off-by: Stanislav Bogatyrev <s.bogatyrev@yadro.com>
2023-05-29 18:04:14 +03:00
c7c7407916 [#13] Fix GH link
Signed-off-by: Stanislav Bogatyrev <s.bogatyrev@yadro.com>
2023-05-02 15:01:35 +03:00
6a921cec32 [#3] Fix FEP-1 status
When accepted, FEP-1 becomes Active.

Signed-off-by: Stanislav Bogatyrev <s.bogatyrev@yadro.com>
2023-04-18 10:02:39 +03:00
97e0a9bfcf [#13] Fix GH move leftovers
Signed-off-by: Stanislav Bogatyrev <s.bogatyrev@yadro.com>
2023-04-18 10:02:35 +03:00
13 changed files with 178 additions and 143 deletions

View file

@ -0,0 +1,34 @@
name: build static site
on:
workflow_dispatch:
push:
pull_request:
jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/cache@v4
with:
path: |-
bin/
themes/
key: hugo-${{ runner.os }}-${{ hashFiles('Makefile', 'config.toml') }}
restore-keys: |
hugo-${{ runner.os }}
hugo
- run: make all
- uses: actions/upload-artifact@v4
with:
name: site
path: |
public/
if-no-files-found: error
retention-days: 10

3
.github/CODEOWNERS vendored
View file

@ -1,3 +0,0 @@
/content/proposals/proc/* @TrueCloudLab/community-committee
/content/proposals/std/* @TrueCloudLab/architecture-committee
/content/proposals/info/* @TrueCloudLab/architecture-committee @TrueCloudLab/community-committee

View file

@ -1,21 +0,0 @@
name: DCO check
on:
pull_request:
branches:
- master
jobs:
commits_check_job:
runs-on: ubuntu-latest
name: Commits Check
steps:
- name: Get PR Commits
id: 'get-pr-commits'
uses: tim-actions/get-pr-commits@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: DCO Check
uses: tim-actions/dco@master
with:
commits: ${{ steps.get-pr-commits.outputs.commits }}

View file

@ -1,74 +0,0 @@
# Sample workflow for building and deploying a Hugo site to GitHub Pages
name: Deploy Hugo site to Pages
on:
# Runs on pushes targeting the default branch
push:
branches: ["master"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true
# Default to bash
defaults:
run:
shell: bash
jobs:
# Build job
build:
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.108.0
steps:
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Install Dart Sass Embedded
run: sudo snap install dart-sass-embedded
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup Pages
id: pages
uses: actions/configure-pages@v3
- name: Install Node.js dependencies
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
- name: Build with Hugo
env:
# For maximum backward compatibility with Hugo modules
HUGO_ENVIRONMENT: production
HUGO_ENV: production
run: |
hugo \
--minify \
--baseURL "${{ steps.pages.outputs.base_url }}/"
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
path: ./public
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1

2
.gitignore vendored
View file

@ -3,7 +3,7 @@
*.log
*.lock
tmp/
bin/hugo
bin/hugo*
public/
resources/_gen

View file

@ -3,24 +3,25 @@ SHELL = bash
PUBDIR = public
HUGO_VERSION = 0.91.0
HUGO_BIN ?= bin/hugo
HUGO_BIN ?= bin/hugo-$(HUGO_VERSION)
.PHONY: all clean
all: public
bin/hugo:
bin/hugo-$(HUGO_VERSION):
@wget -q https://github.com/gohugoio/hugo/releases/download/v$(HUGO_VERSION)/hugo_extended_$(HUGO_VERSION)_Linux-64bit.tar.gz -O - |\
tar -xz -C bin/ hugo;
@mv bin/hugo $@
clean:
@rm -rf $(PUBDIR)
@rm -rf tmp
@rm -rf bin/hugo
@rm -rf bin/hugo*
public: submodules bin/hugo
public: submodules $(HUGO_BIN)
@$(HUGO_BIN)
server: submodules bin/hugo
server: submodules $(HUGO_BIN)
@$(HUGO_BIN) server --disableFastRender
submodules:

View file

@ -6,18 +6,17 @@
</p>
---
![License](https://img.shields.io/github/license/TrueCloudLab/frostfs.info.svg?style=popout)
## Overview
Welcome to the FrostFS Documentation site repository!
This is a TrueCloudLab maintained and community supported
FrostFS documentation project, where everyone can contribute new articles, suggest
new topics and enhance existing content.
This is a TrueCloudLab maintained and community supported FrostFS documentation
project, where everyone can contribute new articles, suggest new topics and
enhance existing content.
All documentation can be edited via GitHub. We use Hugo for static content
generation, so most of Hugo guides are applicable for this site.
We use Hugo for static content generation, so most of Hugo guides are applicable
for this site.
## How to contribute

View file

@ -12,6 +12,12 @@ enableEmoji = true
[markup.goldmark.renderer]
unsafe = true
# table of contents
[markup.tableOfContents]
endLevel = 4
ordered = false
startLevel = 2
############################# Default Parameters ##########################
[params]
# logo is for all page
@ -35,15 +41,15 @@ contact_form_action = "#" # contact form works with : https://formspree.io
############################## social links ##############################
[[params.social]]
icon = "ti-github" # themify icon pack : https://themify.me/themify-icons
name = "Github"
link = "https://github.com/TrueCloudLab"
name = "Forgejo instance"
link = "https://git.frostfs.info/TrueCloudLab"
################################ English Language ######################
[Languages.en]
languageName = "En"
languageCode = "en-us"
weight = 1
copyright = "Copyright &copy; [TrueCloudLab](https://github.com/TrueCloudLab) 2022"
copyright = "Copyright &copy; [TrueCloudLab](https://git.frostfs.info/TrueCloudLab) 2022-2023"
# banner
[Languages.en.params.banner]

View file

@ -6,4 +6,4 @@ type: "docs"
date: "2022-12-22"
---
FrostFS provides has language agnostic [gRPC API](https://github.com/TrueCloudLab/frostfs-api) declarations and few API and SDK implementation for different programming languages.
FrostFS provides has language agnostic [gRPC API](https://git.frostfs.info/TrueCloudLab/frostfs-api) declarations and few API and SDK implementation for different programming languages.

View file

@ -6,7 +6,7 @@ type: "docs"
date: "2022-12-22"
---
### Introduction
## Introduction
FrostFS Enhancement Proposals (FEPs) describe standards for the whole FrostFS
@ -18,7 +18,7 @@ never changed.
To learn more about the purpose of FEPs and how to go about writing one, please
refer to [FEP-1]({{< ref "/proposals/proc/fep-0001" >}}).
### FEP Status Key
## FEP Status Key
- **Accepted** — Normative proposal accepted for implementation
- **Active** — Currently valid informational guidance, or an in-use process

View file

@ -5,12 +5,13 @@ Author: Stanislav Bogatyrev <realloc@realloc.spb.ru>
Discussions-To:
- https://git.frostfs.info/TrueCloudLab/frostfs.info/pulls/12
- https://github.com/TrueCloudLab/frostfs.info/pull/3
Status: Draft
Status: Active
Type: Process
Date: 2023-04-17
toc: true
---
### What is a FEP?
## What is a FEP?
FEP stands for FrostFS Enhancement Proposal. The idea and most of the process is
derived from Python [PEP-1](https://www.python.org/dev/peps/pep-0001/). Almost
@ -34,7 +35,7 @@ repository](https://git.frostfs.info/TrueCloudLab/frostfs.info/src/branch/master
The current rendered version is available on [frostfs.info
site](https://frostfs.info/proposals/).
### FEP Audience
## FEP Audience
The typical primary audience for FEPs are the FrostFS Core and Service
developers, Architecture Committee, as well as developers of applications
@ -45,7 +46,7 @@ However, other parts of the FrostFS community may also choose to use the process
to manage complex design coordination problems that require collaboration across
multiple projects.
### FEP Types
## FEP Types
There are three kinds of FEP:
@ -69,9 +70,9 @@ There are three kinds of FEP:
procedures, guidelines, changes to the decision-making process, and changes
to the tools or environment used in FrostFS development.
### FEP Workflow
## FEP Workflow
#### Starting with an idea
### Starting with an idea
There are several references in this FEP to the "Architecture Committee",
"Community Committee", "Committers" and "Developers". The detailed roles and
@ -109,7 +110,7 @@ mentioned above. This gives the author a chance to flesh out the draft FEP to
make properly formatted, of high quality, and to address initial concerns about
the proposal.
#### Submitting a FEP
### Submitting a FEP
Following the above initial discussion, the workflow varies based on whether any
of the FEP's co-authors are Committers. If one or more of the FEP's co-authors
@ -189,7 +190,7 @@ that at least a prototype implementation be co-developed with the FEP, as ideas
that sound good in principle sometimes turn out to be impractical when subjected
to the test of implementation.
#### Discussing a FEP
### Discussing a FEP
As soon as a FEP number has been assigned and the draft FEP is committed to the
FEP repository, a discussion thread for the FEP should be created to provide a
@ -218,7 +219,7 @@ FEP review process. Comments, support, concerns and other feedback on this
designated thread are a critical part of what the Architecture Committee or
FEP-Delegate will consider when reviewing the FEP.
#### FEP Review & Resolution
### FEP Review & Resolution
Once the authors have completed a FEP, they may request a review for style and
consistency from the FEP editors. However, content review and acceptance of the
@ -295,7 +296,7 @@ Some Informational and Process FEPs may also have a status of "Active" if they
are never meant to be completed. E.g. [FEP-1]({{< ref "/proposals/proc/fep-0001"
>}}) (this FEP :smile:).
#### FEP Maintenance {#fep_maintenance}
### FEP Maintenance {#fep_maintenance}
In general, FEPs are no longer substantially modified after they have reached
the Accepted, Final, Rejected or Superseded state. Once resolution is reached, a
@ -316,7 +317,7 @@ in question.
Occasionally, a Deferred or even a Withdrawn FEP may be resurrected
with major updates, but it is often better to just propose a new one.
### What belongs in a successful FEP?
## What belongs in a successful FEP?
Each FEP should have the following parts/sections:
@ -393,7 +394,7 @@ Each FEP should have the following parts/sections:
Attribution-NonCommercial-ShareAlike 4.0 International License ([CC BY-NC-SA
4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)).
### FEP Formats and Templates
## FEP Formats and Templates
FEPs are UTF-8 encoded text files using the Markdown format in a dialect used by
[Hugo](https://gohugo.io/) static site generator. Markdown allows for rich
@ -403,7 +404,7 @@ functional HTML.
The FEP text files are automatically converted to HTML for easier online reading
at [FrostFS site](https://frostfs.info/proposals/)
### FEP Header Preamble {#fep_header_preamble}
## FEP Header Preamble {#fep_header_preamble}
Each FEP must begin with an RFC-2822 style preamble in [Hugo page level
params](https://gohugo.io/variables/page/#page-level-params) format. The
@ -474,13 +475,13 @@ rendered obsolete by a later document; the value is the number of the FEP that
replaces the current document. The newer FEP must have a Replaces header
containing the number of the FEP that it rendered obsolete.
### Auxiliary Files
## Auxiliary Files
FEPs may include auxiliary files such as diagrams. All support files may be
placed in a subdirectory called ``fep-XXXX``, where "XXXX" is the FEP number.
When using a subdirectory, there are no constraints on the names used in files.
### Changing Existing FEPs
## Changing Existing FEPs
Draft FEPs are freely open for discussion and proposed modification, at the
discretion of the authors, until submitted to the corresponding Committee for
@ -497,7 +498,7 @@ Guide](https://git.frostfs.info/TrueCloudLab/frostfs.info/blob/master/CONTRIBUTI
for additional details, and when in doubt, please check first with the FEP
author and/or a FEP editor.
### Transferring FEP Ownership
## Transferring FEP Ownership
It occasionally becomes necessary to transfer ownership of FEPs to a new
champion. In general, it is preferable to retain the original author as a
@ -519,7 +520,7 @@ use email.) If the original author doesn't respond in a timely manner, the
Committee will make a unilateral decision (it's not like such decisions can't be
reversed :smile:).
### Committee Responsibilities & Workflow
## Committee Responsibilities & Workflow
A FEP editor must be added to the `@TrueCloudLab/architecture-committee` or
`@TrueCloudLab/community-committee` group, depending on the relevant FEP types,
@ -575,7 +576,7 @@ Once the FEP is ready for the repository, a FEP editor will:
Updates to existing FEPs should be submitted as a pull request.
### Copyright
## Copyright
This work is licensed under a Creative Commons
Attribution-NonCommercial-ShareAlike 4.0 International License.

View file

@ -12,12 +12,12 @@
{{ end }}
{{ if eq $is_exists 1 }}
<table>
<table class="table">
<thead>
<tr>
<th>Status</th>
<th>PEP</th>
<th>Authors</th>
<th class="table-th">Status</th>
<th class="table-th">PEP</th>
<th class="table-th">Authors</th>
</tr>
</thead>
<tbody>
@ -25,12 +25,104 @@
{{ if gt (len (findRE $active_status $page.Params.status)) 0 }}
{{ if gt (len (findRE (print "/" $active_category "/") $page.File)) 0 }}
<tr>
<th>{{ $page.Params.status }}</th>
<th>
<th class="table-th status">{{ substr $page.Params.status 0 1 }}{{ substr $page.Params.type 0 1 }}
<span class="tooltiptext">{{ $page.Params.status }}, {{ $page.Params.type }}</span>
</th>
<th class="table-th">
<a href="{{ $page.Permalink }}">{{ $page.Title }}</a>
</th>
<th>{{ $page.Params.author }}</th>
<!-- <th>{{ $page.Lastmod }}</th> -->
<th class="table-th">
<div class="authors">
{{ if (isset $page.Params.author 0) }}
{{ range $elem_index, $elem_val := $page.Params.author }}
{{ $initialEmail := delimit (findRE `<.*@.*>` $elem_val) "" }}
{{ $initialLogin := delimit (findRE `\(@.*\)` $elem_val) "" }}
{{ $initialLink := delimit (findRE `\([^@].*\)` $elem_val) "" }}
{{ $nameWithoutEmail := trim (substr $elem_val 0 (sub (len $elem_val) (len $initialEmail))) " " }}
{{ $nameWithoutLogin := trim (substr $elem_val 0 (sub (len $elem_val) (len $initialLogin))) " " }}
{{ $nameWithoutLink := trim (substr $elem_val 0 (sub (len $elem_val) (len $initialLink))) " " }}
<span class="author-name">
{{ if $initialEmail }}
{{ $nameWithoutEmail }}
<span class="tooltiptext">
{{ $email := slicestr $initialEmail 1 (sub (len $initialEmail) 1) }}
<div class="author-contact">
<i class="ti-email"></i>
<a href="mailto:{{ $email }}">{{ $email }}</a>
</div>
</span>
{{ else if ($initialLogin) }}
{{ $nameWithoutLogin }}
<span class="tooltiptext">
{{ $login := slicestr $initialLogin 1 (sub (len $initialLogin) 1) }}
{{ $linkLogin := trim $login "@" }}
<div class="author-contact">
<i class="ti-link"></i>
<a href="https://git.frostfs.info/{{ $linkLogin }}" target="_blank">{{ $login }}</a>
</div>
</span>
{{ else if ($initialLink) }}
{{ $nameWithoutLink }}
<span class="tooltiptext">
{{ $link := slicestr $initialLink 1 (sub (len $initialLink) 1) }}
<div class="author-contact">
<i class="ti-new-window"></i>
<a href="https://{{ $link }}" target="_blank">{{ $link }}</a>
</div>
</span>
{{ else }}
{{ $elem_val }}
{{ end }}
</span>
{{ if gt (sub (len $page.Params.author) 1) $elem_index }}
<span class="author-delimiter">, </span>
{{end}}
{{ end }}
{{ else }}
{{ $initialEmail := delimit (findRE `<.*@.*>` $page.Params.author) "" }}
{{ $initialLogin := delimit (findRE `\(@.*\)` $page.Params.author) "" }}
{{ $initialLink := delimit (findRE `\([^@].*\)` $page.Params.author) "" }}
{{ $nameWithoutEmail := trim (substr $page.Params.author 0 (sub (len $page.Params.author) (len $initialEmail))) " " }}
{{ $nameWithoutLogin := trim (substr $page.Params.author 0 (sub (len $page.Params.author) (len $initialLogin))) " " }}
{{ $nameWithoutLink := trim (substr $page.Params.author 0 (sub (len $page.Params.author) (len $initialLink))) " " }}
<span class="author-name">
{{ if $initialEmail }}
{{ $nameWithoutEmail }}
<span class="tooltiptext">
{{ $email := slicestr $initialEmail 1 (sub (len $initialEmail) 1) }}
<div class="author-contact">
<i class="ti-email"></i>
<a href="mailto:{{ $email }}">{{ $email }}</a>
</div>
</span>
{{ else if ($initialLogin) }}
{{ $nameWithoutLogin }}
<span class="tooltiptext">
{{ $login := slicestr $initialLogin 1 (sub (len $initialLogin) 1) }}
{{ $linkLogin := trim $login "@" }}
<div class="author-contact">
<i class="ti-link"></i>
<a href="https://git.frostfs.info/{{ $linkLogin }}" target="_blank">{{ $login }}</a>
</div>
</span>
{{ else if ($initialLink) }}
{{ $nameWithoutLink }}
<span class="tooltiptext">
{{ $link := slicestr $initialLink 1 (sub (len $initialLink) 1) }}
<div class="author-contact">
<i class="ti-new-window"></i>
<a href="https://{{ $link }}" target="_blank">{{ $link }}</a>
</div>
</span>
{{ else }}
{{ $page.Params.author }}
{{ end }}
</span>
{{ end }}
</div>
</th>
</tr>
{{ end }}
{{ end }}

@ -1 +1 @@
Subproject commit 95e99e3d4b3db02fd946e9f51c8a52303c5ea73b
Subproject commit 59820ed5c97af782f0688cbbb6d416bb909db39a