manual added knowledge_base

This commit is contained in:
2024-04-15 22:10:30 +00:00
parent b63f091e63
commit 6caab6f95d
448 changed files with 11437 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
## Describe the bug
A clear and concise description of what the bug is.
## To Reproduce
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
## Expected behavior
A clear and concise description of what you expected to happen.
## Screenshots
If applicable, add screenshots to help explain your problem.

View File

@@ -0,0 +1,318 @@
<h1> Code of Conduct</h1>
<h2>Table of Contents</h2>
- [Introduction: Collaboration Manifest](#introduction-collaboration-manifest)
- [Code of Conduct](#code-of-conduct)
- [Forum \& Chat Rules](#forum--chat-rules)
- [Moderation Rights](#moderation-rights)
- [Contribution](#contribution)
- [Keep It Simple and Relevant](#keep-it-simple-and-relevant)
- [Content Verification Guidelines](#content-verification-guidelines)
- [Freedom of Speech.](#freedom-of-speech)
- [Contribution Guidelines](#contribution-guidelines)
- [This is a Civilized Place for Public Discussion](#this-is-a-civilized-place-for-public-discussion)
- [Improve the Discussion](#improve-the-discussion)
- [Be Agreeable, Even When You Disagree](#be-agreeable-even-when-you-disagree)
- [Your Participation Counts](#your-participation-counts)
- [If You See a Problem, Flag It](#if-you-see-a-problem-flag-it)
- [Always Be Civil](#always-be-civil)
- [Keep It Tidy](#keep-it-tidy)
- [Post Only Your Own Stuff](#post-only-your-own-stuff)
- [Powered by You](#powered-by-you)
- [Terms of Service](#terms-of-service)
- [Terms of Service (TOS)](#terms-of-service-tos)
- [Important Terms](#important-terms)
- [Your Permission to Use the Forum)](#your-permission-to-use-the-forum)
- [Conditions for Use of the Forum](#conditions-for-use-of-the-forum)
- [Acceptable Use](#acceptable-use)
- [Content Standards](#content-standards)
- [Enforcement](#enforcement)
- [Your Account](#your-account)
- [Your Content](#your-content)
- [Your Responsibility](#your-responsibility)
- [Disclaimers](#disclaimers)
- [Limits on Liability](#limits-on-liability)
- [Feedback](#feedback)
- [Termination](#termination)
- [Disputes](#disputes)
- [General Terms](#general-terms)
- [Contact](#contact)
- [Changes](#changes)
***
# Introduction: Collaboration Manifest
FreeFlow nation created this collaboration manifest which can be freely used by any organization who finds them useful. If you would like to see any changes to this document please email to **info@freeflownation.org**.
We at ThreeFold want to follow these guidelines.
This document has been created honoring the [FreeFlow Nation Manifesto](https://www.freeflownation.org/manifesto.html).
# Code of Conduct
## Forum & Chat Rules
We are committed to making participation a harassment-free experience for everyone, regardless of level of experience, gender, gender identity or expression, sexual orientation, disability, personal appearance, race, ethnicity, age, religion, or nationality.
Examples of unacceptable behavior include, but are not limited to:
* Use of sexualized language or imagery
* Personal attacks
* Trolling or insulting/derogatory comments
* Public or private harassment
* Publishing private information without explicit permission (e.g. physical or electronic address)
## Moderation Rights
Content moderators have the right and responsibility to remove, edit, or reject all posts, comments, and other contributions that are not aligned to this Code of Conduct. They may also suspend or ban any forum member for behaviors that they deem inappropriate, threatening, offensive, or harmful.
By adopting this Code of Conduct, moderators commit themselves to fairly and consistently applying these principles to every aspect of managing this community. Moderators who do not follow or enforce the Code of Conduct may be permanently removed from the moderation team.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by flagging the post or comment in question. All complaints will be reviewed and investigated and will result in a response deemed both necessary and appropriate to the circumstances. Moderators are obligated to maintain confidentiality regarding the identity of the reporting party.
The forum is a place where we bring people together that share the same values and want to make the world a better place. Positive feedback is well appreciated but must always stay respectful and helpful. Moderators thus have the right to remove any posts spreading negativity and/or attacking the project and its founders.
## Contribution
We welcome everyone to contribute and thank you for your content contribution.
Content can be chat, questions, answers, blogs, articles, knowledge base information, tutorials, …
The more people collaborate the more relevant set of information will be created.
Creating content constitutes your agreement to release submitted content as public domain ([CC0 10 4](https://creativecommons.org/publicdomain/zero/1.0/)).
## Keep It Simple and Relevant
Overload of information is maybe even worse as not enough information.
Please keep your discussions and contributions information-rich. If your signal-to-noise ratio gets too low, you will be muted or banned from the forum or relevant chat. This is up to the discretion of ThreeFold moderators.
## Content Verification Guidelines
We believe its in the best interest of our community to know the origin and authenticity of any information contributed. We want to do everything possible to verify the authenticity of the content created (e.g. messages, knowledge-base, chats, etc.). As such its our right to block a contributor from creating any content if identity cannot be verified.
## Freedom of Speech.
We believe in freedom of speech as long as its not in contradiction with our Content Verification Guidelines.
# Contribution Guidelines
## This is a Civilized Place for Public Discussion
Please treat this discussion forum with the same respect you would a public park. We, too, are a shared community resource — a place to share skills, knowledge and interests through ongoing conversation.
These are not hard and fast rules, merely guidelines to aid the human judgment of our community and keep this a clean and well-lighted place for civilized public discourse.
## Improve the Discussion
Help us make this a great place for discussion by always working to improve the discussion in some way, however small. If you are not sure your post adds to the conversation, think over what you want to say and try again later.
The topics discussed here matter to us, and we want you to act as if they matter to you, too. Be respectful of the topics and the people discussing them, even if you disagree with some of what is being said.
One way to improve the discussion is by discovering ones that are already happening. Spend time browsing the topics here before replying or starting your own, and youll have a better chance of meeting others who share your interests.
## Be Agreeable, Even When You Disagree
You may wish to respond to something by disagreeing with it. Thats fine. But remember to criticize ideas, not people. Please avoid any of the following:
* Name-calling
* Ad hominem attacks
* Responding to a posts tone instead of its actual content
* Knee-jerk contradiction
Instead, provide reasoned counter-arguments that improve the conversation.
## Your Participation Counts
The conversations we have here set the tone for every new arrival. Help us influence the future of this community by choosing to engage in discussions that make this forum an interesting place to be — and avoiding those that do not.
The forum we use (Discourse) provides tools that enable the community to collectively identify the best (and worst) contributions: bookmarks, likes, flags, replies, edits, and so forth. Use these tools to improve your own experience, and everyone elses, too.
Lets leave our community better than we found it.
## If You See a Problem, Flag It
Moderators have special authority: they are responsible for this forum, but so are you. With your help, moderators can be community facilitators, not just janitors or police.
When you see bad behavior, dont reply. It encourages bad behavior by acknowledging it, consumes your energy, and wastes everyones time. Just flag it. If enough flags accrue, action will be taken, either automatically or by moderator intervention.
In order to maintain our community, moderators reserve the right to remove any content and any user account for any reason at any time. Moderators do not preview new posts: the moderators and site operators take no responsibility for any content posted by the community.
## Always Be Civil
Nothing sabotages a healthy conversation like rudeness:
* Be civil. Dont post anything that a reasonable person would consider offensive, abusive, or hate speech.
* Keep it clean. Dont post anything obscene or sexually explicit.
* Respect each other. Dont harass or grief anyone, impersonate people, or expose their private information.
* Respect our forum. Dont post spam or otherwise vandalize the forum.
These are not concrete terms with precise definitions — avoid even the appearance of any of these things. If youre unsure, ask yourself how you would feel if your post was featured on the front page of the New York Times.
This is a public forum, and search engines index these discussions. Keep the language, links, and images safe for family and friends.
## Keep It Tidy
Make the effort to put things in the right place, so that we can spend more time discussing and less time cleaning up.
In brief:
* Dont start a topic in the wrong category.
* Dont cross-post the same thing in multiple topics.
* Dont post no-content replies.
* Dont divert a topic by changing it midstream.
* Dont sign your posts — every post has your profile information attached to it.
* Rather than posting “+1” or “Agreed”, use the Like button. Rather than taking an existing topic in a radically different direction, use Reply as a Linked Topic.
## Post Only Your Own Stuff
You may not post anything digital that belongs to someone else without permission. You may not post descriptions of, links to, or methods for stealing someones intellectual property (e.g. software, video, audio, images, etc.), or for breaking any other law.
## Powered by You
This site is operated by your friendly local staff and you, the community. If you have any further questions about how things should work here, open a new topic in the site feedback category and lets discuss! If theres a critical or urgent issue that cant be handled by a meta topic or flag, contact us via the support live chat.
## Terms of Service
Yes, legalese is boring, but we must protect ourselves and by extension, you and your data against unfriendly folks. We have a Terms of Service describing your (and our) behavior and rights related to content, privacy, and laws. To use this service, you must agree to abide by our TOS. See below for more information on this.
# Terms of Service (TOS)
These terms include a number of important provisions that affect your rights and responsibilities, such as the disclaimers in Disclaimers, limits on the companys liability to you in Limits on Liability, your agreement to cover the company for damages caused by your misuse of the forum in Responsibility for Your Use, and an agreement to arbitrate disputes in Disputes.
Please read:
To use this forum, or any other collaboration/communication tool of ThreeFold you must agree to these terms with threefold, the company that runs the forum or any other tool (FreeFlow Pages and others).
The company may offer other products and services, under different terms. These terms apply only to use of the forum.
## Important Terms
These terms include a number of important provisions that affect your rights and responsibilities, such as the disclaimers in [Disclaimers](#disclaimers), limits on the companys liability to you in [Limits on Liability](#limits-on-liability), your agreement to cover the company for damages caused by your misuse of the forum in [Responsibility for Your Use](#your-responsibility), and an agreement to arbitrate disputes in [Disputes](#disputes).
## Your Permission to Use the Forum)
Subject to these terms, the company gives you permission to use the forum. Everyone needs to agree to these terms to use the forum.
## Conditions for Use of the Forum
Your permission to use the forum is subject to the following conditions:
1. You must be at least thirteen years old.
2. You may no longer use the forum if the company contacts you directly to say that you may not.
3. You must use the forum in accordance with [Acceptable Use](#acceptable-use) and [Content Standards](#content-standards).
## Acceptable Use
1. You may not break the law using the forum.
2. You may not use or try to use anothers account on the forum without their specific permission.
3. You may not buy, sell, or otherwise trade in user names or other unique identifiers on the forum.
4. You may not send advertisements, chain letters, or other solicitations through the forum, or use the forum to gather addresses or other personal data for commercial mailing lists or databases.
5. You may not automate access to the forum, or monitor the forum, such as with a web crawler, browser plug-in or add-on, or other computer program that is not a web browser. You may crawl the forum to index it for a publicly available search engine, if you run one.
6. You may not use the forum to send e-mail to distribution lists, newsgroups, or group mail aliases.
7. You may not falsely imply that youre affiliated with or endorsed by the company.
8. You may not hyperlink to images or other non-hypertext content on the forum on other webpages.
9. You may not remove any marks showing proprietary ownership from materials you download from the forum.
10. You may not show any part of the forum on other websites with \<iframe\>.
11. You may not disable, avoid, or circumvent any security or access restrictions of the forum.
12. You may not strain infrastructure of the forum with an unreasonable volume of requests, or requests designed to impose an unreasonable load on information systems underlying the forum.
13. You may not impersonate others through the forum.
14. You may not encourage or help anyone in violation of these terms.
## Content Standards
1. You may not submit content to the forum that is illegal, offensive, or otherwise harmful to others. This includes content that is harassing, inappropriate, or abusive.
2. You may not submit content to the forum that violates the law, infringes anyones intellectual property rights, violates anyones privacy, or breaches agreements you have with others.
3. You may not submit content to the forum containing malicious computer code, such as computer viruses or spyware.
4. You may not submit content to the forum as a mere placeholder, to hold a particular address, user name, or other unique identifier.
5. You may not use the forum to disclose information that you dont have the right to disclose, like others confidential or personal information.
## Enforcement
The company may investigate and prosecute violations of these terms to the fullest legal extent. The company may notify and cooperate with law enforcement authorities in prosecuting violations of the law and these terms.
The company reserves the right to change, redact, and delete content on the forum for any reason. If you believe someone has submitted content to the forum in violation of these terms, [contact us immediately](#contact).
## Your Account
You must create and log into an account to use some features of the forum.
To create an account, you must provide some information about yourself. If you create an account, you agree to provide, at a minimum, a valid e-mail address, and to keep that address up-to-date. You may close your account at any time by e-mailing **info@threefold.io**.
You agree to be responsible for all action taken using your account, whether authorized by you or not, until you either close your account or notify the company that your account has been compromised. You agree to notify the company immediately if you suspect your account has been compromised. You agree to select a secure password for your account, and keep it secret.
The company may restrict, suspend, or close your account on the forum according to its policy for handling copyright-related takedown requests, or if the company reasonably believes that youve broken any rule in these terms.
## Your Content
Nothing in these terms gives the company any ownership rights in intellectual property that you share with the forum, such as your account information, posts, or other content you submit to the forum. Nothing in these terms gives you any ownership rights in the companys intellectual property, either.
Between you and the company, you remain solely responsible for content you submit to the forum. You agree not to wrongly imply that content you submit to the forum is sponsored or approved by the company. These terms do not obligate the company to store, maintain, or provide copies of content you submit, and to change it, according to these terms.
Content you submit to the forum belongs to you, and you decide what permission to give others for it. But at a minimum, you license the company to provide content that you submit to the forum to other users of the forum. That special license allows the company to copy, publish, and analyze content you submit to the forum.
When content you submit is removed from the forum, whether by you or by the company, the companys special license ends when the last copy disappears from the companys backups, caches, and other systems. Other licenses you apply to content you submit, such as [Creative Commons](https://creativecommons.org/) licenses, may continue after your content is removed. Those licenses may give others, or the company itself, the right to share your content through the forum again.
Others who receive content you submit to the forum may violate the terms on which you license your content. You agree that the company will not be liable to you for those violations or their consequences.
## Your Responsibility
You agree to indemnify the company from legal claims by others related to your breach of these terms, or breach of these terms by others using your account on the forum. Both you and the company agree to notify the other side of any legal claims for which you might have to indemnify the company as soon as possible. If the company fails to notify you of a legal claim promptly, you wont have to indemnify the company for damages that you could have defended against or mitigated with prompt notice. You agree to allow the company to control investigation, defense, and settlement of legal claims for which you would have to indemnify the company, and to cooperate with those efforts. The company agrees not to agree to any settlement that admits fault for you or imposes obligations on you without your prior agreement.
## Disclaimers
You accept all risks of using the forum and content on the forum. As far as the law allows, the company and its suppliers provide the forum as is, without any warranty whatsoever.
The forum may hyperlink to and integrate forums and services run by others. The company does not make any warranty about services run by others, or content they may provide. Use of services run by others may be governed by other terms between you and the one running service.
## Limits on Liability
Neither the company nor its suppliers will be liable to you for breach-of-contract damages their personnel could not have reasonably foreseen when you agreed to these terms.
As far as the law allows, the total liability to you for claims of any kind that are related to the forum or content on the forum will be limited to $50.
## Feedback
The company welcomes your feedback and suggestions for the forum. See the [Contact](#contact) section below for ways to get in touch with us.
You agree that the company will be free to act on feedback and suggestions you provide, and that the company wont have to notify you that your feedback was used, get your permission to use it, or pay you. You agree not to submit feedback or suggestions that you believe might be confidential or proprietary, to you or others.
## Termination
Either you or the company may end the agreement written out in these terms at any time. When our agreement ends, your permission to use the forum also ends.
The following provisions survive the end of our agreement: [Your Content](#your-content), [Feedback](#feedback), [Your Responsibility](#your-responsibility), [Disclaimers](#disclaimers), [Limits on Liability](#limits-on-liability), and [General Terms](#general-terms).
## Disputes
The governing law will govern any dispute related to these terms or your use of the forum.
You and the company agree to seek injunctions related to these terms only in state or federal court in the city for disputes. Neither you nor the company will object to jurisdiction, forum, or venue in those courts.
Other than to seek an injunction or for claims under the Computer Fraud and Abuse Act, you and the company will resolve any dispute by binding American Arbitration Association arbitration. Arbitration will follow the AAAs Commercial Arbitration Rules and Supplementary Procedures for Consumer Related Disputes. Arbitration will happen in the city for disputes. You will settle any dispute as an individual, and not as part of a class action or other representative proceeding, whether as the plaintiff or a class member. No arbitrator will consolidate any dispute with any other arbitration without the companys permission.
Any arbitration award will include costs of the arbitration, reasonable attorneys fees, and reasonable costs for witnesses. You and the company may enter arbitration awards in any court with jurisdiction.
## General Terms
If a provision of these terms is unenforceable as written, but could be changed to make it enforceable, that provision should be modified to the minimum extent necessary to make it enforceable. Otherwise, that provision should be removed.
You may not assign your agreement with the company. The company may assign your agreement to any affiliate of the company, any other company that obtains control of the company, or any other company that buys assets of the company related to the forum. Any attempted assignment against these terms has no legal effect.
Neither the exercise of any right under this Agreement, nor waiver of any breach of this Agreement, waives any other breach of this Agreement.
These terms embody all the terms of agreement between you and the company about use of the forum. These terms entirely replace any other agreements about your use of the forum, written or not.
## Contact
You may notify the company under these terms, and send questions to the company, at **info@threefold.io**.
The company may notify you under these terms using the e-mail address you provide for your account on the forum, or by posting a message to the homepage of the forum or your account page.
## Changes
The company last updated these terms on Aug, 2020, and may update these terms again. For updates that contain substantial changes, the company agrees to e-mail you, if youve created an account and provided a valid e-mail address. The company may also announce updates with special messages or alerts on the forum.
Once you get notice of an update to these terms, you must agree to the new terms in order to keep using the forum.

View File

@@ -0,0 +1,13 @@
<h1> Collaboration </h1>
ThreeFold strongly believes in the power of open-source projects and community-driven collaboration. The following documentation is ideal for anyone who wants to know ways to collaborate to the ThreeFold ecosystem.
To become a farmer, a developer or a sysadmin on the ThreeFold, read the [documentation](../../documentation/documentation.md).
<h2>Table of Contents</h2
- [How to Contribute](./contribute.md)
- [Development Process](./development_process.md)
- [Collaboration Tools](./collaboration_tools/collaboration_tools.md)
- [How to Test](./testing/testing_readme.md)
- [Code of Conduct](./code_conduct.md)

View File

@@ -0,0 +1,113 @@
<h1> ThreeFold Circle Tool </h1>
<h2>Table of Contents</h2>
- [Introduction](#introduction)
- [Overview](#overview)
- [Prerequisites](#prerequisites)
- [How to Use the Circle Tool](#how-to-use-the-circle-tool)
- [Circle Tool Overview](#circle-tool-overview)
- [Dashboard View](#dashboard-view)
- [Profile view](#profile-view)
- [Projects](#projects)
- [Scrum Module on Project](#scrum-module-on-project)
- [Scrum Backlog](#scrum-backlog)
- [Scrum Sprints](#scrum-sprints)
- [More Info](#more-info)
***
## Introduction
The [__ThreeFold Circle Tool__](https://circles.threefold.me ) is our own self-hosted (desktop only) project management tool based on [Taiga](https://www.taiga.io/), an open-source project management tool for cross-functional agile. It offers a lot of different project management kits and features such as the scrum board, kanban board, issues management, and many more.
Our teams at ThreeFold use the Circle Tool to self-manage our tasks, thus it is deemed necessary for the new onboarded team members to learn how to use the tool. Unfortunately we only provide the desktop version of the tool at this moment since we normally manage our projects on the computer.
This manual will be a beneficial thing to read for anyone: our team members, as well as our community members who are interested in using Circle Tool for their projects.
## Overview
Here is an overview of the tool.
![ ](./img/taiga.png)
## Prerequisites
You would need to install and create an account on the [TF Connect App](../../../documentation/threefold_token/storing_tft/tf_connect_app.md) before being able to register and use the Circle Tool.
## How to Use the Circle Tool
* Go to [Circle Tool's desktop homepage](https://circles.threefold.me) on your computer as shown below. Click on '__Login__' button on the very top right corner of your screen.
![ ](./img/circlehome.png)
* Click on "TF Connect" button to log into the Circle Tool by using your TF Connect Account.
![ ](./img/tfconnect.png)
* Fill in your TF Connect usernames (without adding the '@' sign) on the provided box, and click on the 'Sign in' button.
![ ](./img/signin.png)
* Circle Tool will ask you to verify your login by clicking the right emoji that is sent to your TF Connect App.
![ ](./img/emoji.png)
* Verify your sign in process by loggin in to your TF Connect App on your mobile phone. Click on the same emoji that you see on your circle tool (desktop).
![ ](./img/matchemoji.png)
* Congratulations, you are now officially logged in on the circle tool. The Dashboard view will be the first thing you will see once you are logged in to the tool.
![ ](./img/dashboard.png)
***
## Circle Tool Overview
The Circle Tool always try to make things easy and intuitive for new users but its good to have a nice & quick overview for your first couple of days.
## Dashboard View
![ ](./img/dashboard.png)
Upon login or if you just go to your Circle Tool, youre confronted with your dashboard with quick access to your working on items, a list of watched items and shortcuts to your projects. You can always go back to your dashboard by clicking on the Taiga
icon on the top bar.
## Profile view
![ ](./img/profile.png)
Circle Tool has an additional section to get a multiproject view where you can find and list everything that is accessible to you. Simply click on your avatar and you access your personal profile section where you can check from what your personal bio looks like for people that might have access to it to all sorts of information on your activities and relevant content.
## Projects
![ ](./img/project.png)
You can access your assigned projects by clicking on Projects link at the top left of your screen. You can hover and get an interactive shortlist or click on the link and go to a dedicated page where you can access them as well as rearrange them. Once you have clicked on a project, you access your default view for that project, which is always the Projects Timeline if you havent changed that.
## Scrum Module on Project
![ ](./img/homeproject.png)
Every circle project can activate the Scrum module. This also happens automatically if you chose the Scrum template upon project creation. You can find the scrum module on the sidebar of your project page.
Scrum is an agile framework for developing, delivering, and sustaining complex products. Although it had an initial emphasis on software development, it has been used in other fields including research, sales, marketing and advanced technologies.
### Scrum Backlog
![ ](./img/backlog.png)
There are various so called artifacts in Scrum. The top three are the Backlog, the User Stories and the Sprints. They respectively represent what is to be done ordered by priority and readyness, the pieces of work themselves and the fixed time periods in which we put selected User Stories to be worked upon and finished.
### Scrum Sprints
![ ](./img/sprints.png)
The Scrum Backlog view will always show a summary view of ongoing or closed Sprints but teams generally stick to the Sprint Taskboard view when they are focused on getting things done for that Sprint. Click on either the Sprint name or the “Sprint Taskboard” button so you can access the very important Sprint Taskboard. Open Sprints appear as shortcuts through the left navigation panes Scrum icon.
## More Info
You can read more about the Circle Tool (Taiga), scrum, sprints, and other documentations on Taiga's project management features on Taiga's official documentation [here](https://community.taiga.io/). Happy Project Managing!

View File

@@ -0,0 +1,18 @@
<h1> ThreeFold's Collaboration Tools </h1>
In this section, we will introduce powerful collaboration tools utilized by ThreeFold, such as the Circle Tool and the Website Deployer.
These tools play a crucial role in enhancing as well as simplifying collaboration and communication at ThreeFold. The tools we use at ThreeFold are chosen for their open-source design and their focus on ease of comprehension and use.
<h2>Table of Contents</h2>
- [Circle Tool](./circle_tool.md)
- This ThreeFold's project management tool, made by using Taiga, is an open-source project management platform designed to facilitate collaboration and to streamline workflows for teams. It provides a comprehensive set of features and tools to help teams plan, track, and manage their projects effectively.
- [Website Deployer](./website_tool.md)
- This ThreeFold's website builder tool, made by using Zola, is a static site generator (SSG) and content management system (CMS) that empowers developers and content creators to build and manage websites efficiently. It is an open-source framework written in the Rust programming language, known for its performance, security, and reliability.
- [Website Link Checker](./website_link_checker.md)
- The ThreeFold website link checker is a wrapper around muffet to check for specific link errors on live websites written in Python.

View File

@@ -0,0 +1,8 @@
column.png
emoji.png
fork.png
signin.png
taiga.png
threecolumnsdone.png
twocolumnsdone.png
vscode.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 900 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 533 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

View File

@@ -0,0 +1,87 @@
<h1> Website Link Checker </h1>
<h2> Table of Contents </h2>
- [Introduction](#introduction)
- [How the Program Exits](#how-the-program-exits)
- [Program Arguments](#program-arguments)
- [How to Use the Program](#how-to-use-the-program)
- [With Python](#with-python)
- [With Docker](#with-docker)
- [With Github Action](#with-github-action)
***
## Introduction
This is a Python program that calls muffet on a whole website and then filters and displays the HTTP errors.
> Note: It can take a couple of minutes to run if the website has a lot of URLs.
## How the Program Exits
Exits with error code 1 if at least one error is found, as specified with --errors
flag. Otherwise exits with code 0. Note that errors set as --warnings will always exit with code 0.
## Program Arguments
* url
* The URL to scan. Please include https:// or http://. (e.g. https://google.com)
* -h, --help
* show this help message and exit
* -e ERRORS [ERRORS ...], --errors ERRORS [ERRORS ...]
* Specify one, many or all error codes to be filtered (e.g. -e 404, -e 403 404, -e all). Use -e all to show all errors.
* -w WARNINGS [WARNINGS ...], --warnings WARNINGS [WARNINGS ...]
* Specify one, many or all error codes to be filtered as warnings (e.g. -w 404, -w 403 404, -w all). Use -w all to show all warnings.
## How to Use the Program
### With Python
* Clone the repository
* ```
git clone https://github.com/threefoldfoundation/website-link-checker
```
* Change directory
* ```
cd website-link-checker
```
* Run the program
* ```
python website-link-checker.py https://example.com -e 404 -w all
```
### With Docker
You can use the following command to run the website link checker with Docker:
```
docker run ghcr.io/threefoldfoundation/website-link-checker https://example.com -e 404 -w all
```
### With Github Action
The website link checker can be run as an action (e.g. `action.yml`) set in `.github/workflows` of a Github repository.
The following action example runs everytime there is a push on the development branch and also every Monday at 6:00AM as set by the cron job.
```
name: link-checker-example
on:
push:
branches: [ development ]
schedule:
- cron: '0 6 * * 1' # e.g. 6:00 AM each Monday
jobs:
job_one:
name: Check for Broken Links
runs-on: ubuntu-latest
steps:
- name: Check for Broken Links
id: link-report
uses: docker://ghcr.io/threefoldfoundation/website-link-checker:latest
with:
args: 'https://example.com -e 404 -w all'
```

View File

@@ -0,0 +1,338 @@
<h1> Zola Website Deployer</h1>
<h2> Table of Contents </h2>
- [Overview](#overview)
- [What is Zola Framework?](#what-is-zola-framework)
- [Prerequisites](#prerequisites)
- [Important Links](#important-links)
- [Installing Zola Onto Your Machine](#installing-zola-onto-your-machine)
- [Important Links](#important-links-1)
- [Get Started](#get-started)
- [Fork ThreeFold's Website Template to Your Github Account](#fork-threefolds-website-template-to-your-github-account)
- [Clone the Forked Repository Locally](#clone-the-forked-repository-locally)
- [Open and Edit Your Cloned Zola Template with a Code Editor](#open-and-edit-your-cloned-zola-template-with-a-code-editor)
- [Template Guide](#template-guide)
- [Navigating the Template](#navigating-the-template)
- [Top Navbar Made Easy](#top-navbar-made-easy)
- [Replace Logo with your Own logo](#replace-logo-with-your-own-logo)
- [Important Links](#important-links-2)
- [Customization](#customization)
- [Some Tutorials on Markdown](#some-tutorials-on-markdown)
- [Creating A Single-Column Page Section](#creating-a-single-column-page-section)
- [Adding Image](#adding-image)
- [Creating Page Section with Multiple Columns](#creating-page-section-with-multiple-columns)
- [Important Links](#important-links-3)
- [Build and Preview Your Website Locally](#build-and-preview-your-website-locally)
- [Check the Website Links](#check-the-website-links)
- [Important Links](#important-links-4)
- [Publish Your Website (Via Github Pages)](#publish-your-website-via-github-pages)
- [Publish your Github page](#publish-your-github-page)
- [Important Links](#important-links-5)
- [Questions and Feedback](#questions-and-feedback)
***
## Overview
**ThreeFold Website Tool** is a customized open-source Zola-based web deployment framework and static website template repository that is available for anyone to use.
At ThreeFold, we utilized Website Tool to deploy all of our web presences. For example, [**www.threefold.io**](https://threefold.io).
### What is Zola Framework?
[**Zola**](https://www.getzola.org/) is a static site generator (SSG), similar to Hugo, Pelican, and Jekyll (for a comprehensive list of SSGs, please see Jamstack). It is written in Rust and uses the Tera template engine, which is similar to Jinja2, Django templates, Liquid, and Twig. Content is written in CommonMark, a strongly defined, highly compatible specification of Markdown.
While you can also publish a static website using Zola alone, we at ThreeFold have customized the framework and created a static website template that makes it even easier for anyone to build a website by simply cloning template and fill it with their own website content.
## Prerequisites
- Github Account
- Zola Framework
- VS Code, or any code editor of choice
- Markdown language knowledge
- Basic Command Line (Terminal) Knowledge
In order to deploy and publish a website using ThreeFold Website Tool, you would need to have an account on github (to store your website data in a github repository), as well as to have Zola framework installed on your machine.
### Important Links
> - [How to Sign Up for a Github Account](https://docs.github.com/en/get-started/signing-up-for-github/signing-up-for-a-new-github-account)
> - [Download VS Code](https://code.visualstudio.com/download)
> - [Learn Markdown Language](https://www.markdownguide.org/)
> - [Command Line Cheat Sheet](https://cs.colby.edu/maxwell/courses/tutorials/terminal/)
## Installing Zola Onto Your Machine
To install Zola on your machine, simply go to your terminal and run the following command:
**MacOS (brew)**:
```
$ brew install zola
```
Please make sure you have [Brew](https://brew.sh/) installed on your MacOS machine before installing Zola.
<b>Windows (scoop)</b>:
```
$ scoop install zola
```
Please make sure you have [Scoop](https://scoop.sh/) installed on your Windows machine before installing Zola.
You should see a similar screen as below when successful:
![](./img/scoopsuccess.png)
For more details on Zola Installation, and installation guidelines for other operating systems, please read: [**Zola Installation Manual**](https://www.getzola.org/documentation/getting-started/installation/).
### Important Links
> - [How to Install Brew (MacOS)](https://brew.sh/)
> - [How to Install Scoop (Windows)](https://github.com/ScoopInstaller/Scoop#readme)
> - [Zola Installation for other OS](https://www.getzola.org/documentation/getting-started/installation/)
> - [Command Line Cheat Sheet](https://cs.colby.edu/maxwell/courses/tutorials/terminal/)
> Next Step: [Template Guide: How to use the TF Web Template](#template-guide)
## Get Started
Now that you have successfully installed Zola on your machine. You are ready to create and build your own website using ThreeFold Website Tool.
In order to do that you would need to clone [**ThreeFold's Website Template**](https://github.com/threefoldfoundation/www_examplezola) to your own github account, and open it locally on your computer by using VS Code or your code editing program of choice.
### Fork ThreeFold's Website Template to Your Github Account
Our Team has especially created an html/css/markdown based template repository on github, free for anyone to use. To start working on your project, simply fork [this repository](https://github.com/threefoldfoundation/www_examplezola) to your own github account by clicking the 'fork' account on the repository, and rename it with your website's name.
![](./img/fork.png)
### Clone the Forked Repository Locally
After you forked the template, now you can [clone the repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) to your local computer so we can start working on it. Please remember the directory / folder of where you cloned the repository in your computer to make it easier for you to locate and edit it.
![](./img/clone.png)
### Open and Edit Your Cloned Zola Template with a Code Editor
Once the template is forked and cloned, open your code editor and start working on your website. I will explain a little more about the content editing process and procedure on the next pages...
![](./img/vscode.png)
### Template Guide
On this page you will find an introduction on [TF Web Template](https://github.com/threefoldfoundation/www_examplezola) and how to navigate the different template component that enable you to edit the template with your own content.
### Navigating the Template
All editable content of your website would be found under **content** folder.
Each page of your website is a **markdown (.md) file.**
Each page and all the images on the page will be put into its own folder under content/ folder.
![](./img/folderdetail.png)
<br>
For example, here, my homepage (index.md) is put into **content/home** folder.
![](./img/indexmd.png)
If I want to edit the homepage of my website, I would go to the following:
bb
```
content/home/index.md
```
and start editing.
![](./img/vscode.png)
### Top Navbar Made Easy
![](./img/navbar.png)
Every time you make a new page folder, we have designed it in a way that the website would automatically generate a new navbar item using the name of each folder you created.
based on the navbar picture above, it means that I have created 3 separate content subfolders, each with an index.md file on it called Home, ThreeFoldFeed and GetServer.
### Replace Logo with your Own logo
![](./img/logo.png)
To replace the logo, **add your own logo image to home folder.**
And then go to **_index.md** file and replace the **logo_path**: images/yourlogoimagename.jpg
![](./img/placeholder.png)
### Important Links
> - [TF Web Template](https://github.com/threefoldfoundation/www_examplezola)
## Customization
We have designed the template in certain ways that it would accommodate different indentation web page style, such as placeholders, footer, header, left-indentation, right-indentation.
All you need to do is just replace the texts and images using markdown language, and use the indentation style you would like to use for your page. Dont know how to markdown? Heres a [**complete markdown syntax guide**](https://www.markdownguide.org/basic-syntax/) for you to begin with.
Happy experimenting!
### Some Tutorials on Markdown
### Creating A Single-Column Page Section
Since we only have one column, Every one column section begins only with row indentation syntax (style, margin, padding).
```
<!-- section 1 (header) -->
{% row(style="" margin="" padding="t") %}
```
for example:
```
<!-- section 1 (header) -->
{% row(style="center" margin="narrow" padding="top") %}
```
and ends with
```
{% end %}
```
### Adding Image
To add image to your page please use
```
![alt_text](yourimagename.png)
```
The Result:
![](./img/mastodon.png)
### Creating Page Section with Multiple Columns
For more than one column section, we need to configure the row and column syntax.
For example:
Sometimes you would like to have a page where you place your texts and buttons on left column and an image on the right column, like:
What you need to do is add:
```
|||
```
in between your text and images for every column you want to create.
For example, this page consist of two columns (left and right):
![](./img/twocolumns.png)
The Result:
![](./img/twocolumnsdone.png)
You can add more than two column like this one, a page section consist of 3 columns.
The code:
![](./img/threecolumns.png)
The Result:
![](./img/threecolumnsdone.png)
### Important Links
> - [Learn Markdown Language](https://www.markdownguide.org/)
### Build and Preview Your Website Locally
After customizing your website, you might want to review and build your website locally before publishing it online. On this page you will find tutorials on how to preview and deploy your website.
To preview your website locally, simply open the terminal via your code editor and type in:
```
./build.sh
```
So that the framework starts building your website.
Then
```
./start.sh
```
So that the framework starts serving your website preview locally. Please make sure you are on located on the right website folder, for example: *$ user/doc/mywebsitename* before typing the command above.
The preview won't successfuly be built if you run the command in the wrong folder.
When successful, it will give you a link to a local preview of your website. Go ahead and copy paste the url onto your web browser to preview your website locally.
![](./img/success.png)
And, Congratulations! You just built your website locally!
![](./img/preview.png)
### Check the Website Links
When you are in the main directory of your Zola website, you can check the following command to check the links of the complete website locally:
```
zola check
```
Once your website is online, you can also use the [Website Link Checker](./website_link_checker.md).
### Important Links
> - [Command Line Cheat Sheet](https://cs.colby.edu/maxwell/courses/tutorials/terminal/)
## Publish Your Website (Via Github Pages)
Since we're using github repository to save our website content, the easiest way to publish our website is also through github pages and by using our own domain.
Once all commits have been pushed back to your github repository online, you can start publishing your website.
The first thing you need to do is to go back to your code editor, and find **config.toml** file on your website repo.
Edit the **base_url** on the **config.toml** file on your repo to your own domain.
![](./img/config.png)
Save all your changes and push all your commits to its origin again.
### Publish your Github page
Later on, go to your github repo **settings**, go to **Pages** on the left navigation sidebar. Add your own custom domain to start publishing your website.
![](./img/gitpages.png)
And you are done! Your website will be published, and it will take only a minute or so to complete the process. Refresh page, and you will see a link to your newly published website.
![](./img/done.png)
## Important Links
> - [Pushing Changes to Github](https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/pushing-changes-to-github)
> - [Github Pages How-to](https://docs.github.com/en/pages)
> - [Adding Custom Domain to my Github Page](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages)
## Questions and Feedback
If you have any question or feedback, you can write a post on the [ThreeFold Forum](http://forum.threefold.io/).

View File

@@ -0,0 +1,119 @@
<h1> How to Contribute to the Threefold Manual </h1>
<h2>Table of Contents</h2>
- [Quick Method: Create an Issue](#quick-method-create-an-issue)
- [Advanced Method: Create a Pull Request](#advanced-method-create-a-pull-request)
- [Main Steps to Add Content](#main-steps-to-add-content)
- [How to View the mdbook Locally](#how-to-view-the-mdbook-locally)
- [How to Install git and mdbook](#how-to-install-git-and-mdbook)
- [Markdown File Template (Optional)](#markdown-file-template-optional)
- [Questions and Feedback](#questions-and-feedback)
***
## Quick Method: Create an Issue
If you've found some issues or typos in the ThreeFold Manual, feel free to [create an issue on the ThreeFold Manual repository](https://github.com/threefoldtech/info_grid/issues) to let us know. We will then be able to fix it as soon as possible.
The steps are simple:
* Go to the [issues section of ThreeFold Manual](https://github.com/threefoldtech/info_grid/issues) repository on GitHub
* Click on `New Issue`
* Choose an appropriate title
* Explain briefly the issue you found
* Click `Submit New Issue`
## Advanced Method: Create a Pull Request
If you found an issue in the manual and you wish to fix the issue yourself, you can always fork the repository and propose the changes in a pull request. We present the main steps in this section as well as further details on how to proceed efficiently.
### Main Steps to Add Content
We present here the main steps to add content to the Threefold Manual by forking the repository [`threefoldtech/info_grid`](https://github.com/threefoldtech/info_grid) to your own Github account.
* Go to the Threefold Manual repository: [https://github.com/threefoldtech/info_grid](https://github.com/threefoldtech/info_grid)
* Fork the Development branch
* On the top right corner, click `Fork -> Create a new fork`
* Make changes in the forked repository
* To add a new section
* Add a new Markdown file to the [src](https://github.com/threefoldtech/info_grid/blob/development/src) directory
* Add the path of the Markdown file to [SUMMARY](https://github.com/threefoldtech/info_grid/blob/development/src/SUMMARY.md).
* To modify an existing section:
* Make the changes directly in the Markdown file
* Ask for a pull request
* In the forked repository, click `Contribute -> Open pull request`
* Once the pull request is accepted, the changes of the Development branch will be available here: [https://www2.manual.grid.tf](https://www2.manual.grid.tf)
* The Threefold team will regularly update the [Development branch](https://github.com/threefoldtech/info_grid) to the [Master branch](https://github.com/threefoldtech/info_grid/tree/master)
* The new content will thus be available here: [https://www.manual.grid.tf](https://www.manual.grid.tf)
Note: You can update your forked repository by clicking `Sync fork -> Update branch`.
### How to View the mdbook Locally
Once you've forked the TF Manual repository to your Github account, you might want to see the changes you've made before asking for a pull request. This will ensure that the final output is exactly what you have in mind.
To do so, you simply need to clone the forked repository on your local computer and serve the mdbook on a given port.
The steps are the following:
* In the terminal, write the following line to clone the forked `info_grid` repository:
* ```
git clone https://github.com/YOUR_GIT_ACCOUNT/info_grid
```
* make sure to write your own Github account in the URL
* To deploy the mdbook locally, first go to the **info_grid** directory:
* ```
cd info_grid
```
* Then write the following line. It will open the manual automatically.
* ```
mdbook serve -o
```
* Note that, by default, the URL is the following, using port `3000`, `http://localhost:3000/`
* You should now be able to see your changes.
### How to Install git and mdbook
To install git, follow the steps provided [here](https://github.com/git-guides/install-git).
To install mdbook, you can download the executable binaries available on the [GitHub Releases Page](https://github.com/rust-lang/mdBook/releases). Simply download the binary for your platform (Windows, macOS, or Linux) and extract the archive. The archive contains an mdbook executable which you can run to build your books. To make it easier to run, you can put the path to the binary into your PATH.
For more information, read the [mdbook Documentation](https://rust-lang.github.io/mdBook/guide/installation.html).
### Markdown File Template (Optional)
Here are some suggestions on how to organize a Markdown file (`.md`) when you submit contents to the ThreeFold Manual. This is not necessary, but it will ease the whole process.
* Title: Heading 1 (`#` in Markdown syntax)
* Main sections: Heading 2 (`##` in Markdown syntax)
* For Markdown files that contain a *Table of Contents*:
* Use `<h1>` instead of `#` for the _Title_ , and `<h2>` instead of `##` for the _Table of Contents_.
* This quickens editing when creating and updating the ToC ([read this for more details](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one#table-of-contents)).
* Other heading labels should use standard Markdown headings (`##`, etc.).
* If your text reaches heading level 4, you might want to separate your file into two or more files.
* A long article can be spread in many subsections.
## Questions and Feedback
If you have any questions or if you would like to share some feedback, let us know in this [Threefold forum post](https://forum.threefold.io/t/new-grid-manual/3783).

View File

@@ -0,0 +1,36 @@
The development cycle is explained below:
![Untitled presentation (1)](https://user-images.githubusercontent.com/8425762/170034170-7247a737-9d99-481d-9289-88d361275043.png)
Devnet:
- continuous development for active version
- can be reset
- should be against a branch named with the version being developed (example: 10.2.3)
Nextnet:
- for parallel version development
- oftentimes, the next major version while development has bugfixes
- should be against a branch named with the version being developed (example: 10.3.1)
QAnet:
- once development is complete, each component is tagged with an rc (example: 10.2.3-rc1) and the new version to be tested is deployed on QAnet
- this net is for INTERNAL QA
- Here, we expect most bugs to be reported
- Once QA signs off, it moves to testnet
Testnet:
- tag as beta release (example: 10.2.3-rc3-beta)
- This is for the community and stability testing
- should be almost completely stable
Mainnet:
- if testnet has no blockers for 2 weeks, community votes to move to mainnet
- everything is merged to main
- final release is tagged (example: 10.2.3)
## GOAL:
moving away from that model to be able to use ephermal environments instead of maintaining such environments, but now they're available for simplicity

View File

@@ -0,0 +1,422 @@
<h1> Development Process </h1>
Our project development process is characterized by agility, collaboration, and, most importantly, respect. We firmly believe in harnessing the collective ingenuity of our team, recognizing that each individual contributes invaluable insights to our codebase, our development process is completely managed on Github, using Github based projects.
<h2>Table of Contents</h2>
- [Quality Assurance (QA) Process](#quality-assurance-qa-process)
- [QA Responsibilities](#qa-responsibilities)
- [Daily Standups](#daily-standups)
- [Provide Test Plans](#provide-test-plans)
- [Test Execution](#test-execution)
- [Test Documentation](#test-documentation)
- [Verification and Closure](#verification-and-closure)
- [Cross-Environment Testing](#cross-environment-testing)
- [Bug Assessment Meetings (BAM)](#bug-assessment-meetings-bam)
- [Additional Testing Types](#additional-testing-types)
- [Expectations for QA Leads](#expectations-for-qa-leads)
- [Test Planning](#test-planning)
- [Test Strategy](#test-strategy)
- [Review and Closure](#review-and-closure)
- [Communication](#communication)
- [QA Verification and Testing](#qa-verification-and-testing)
- [Testplan](#testplan)
- [Verification Process](#verification-process)
***
## Product Definition on Home
`Home` repo serves a special role in the organization, it's the starting point of all development.
- It links to all products & components
- Put only stories, identified with tag `type_story` in the home repo
To streamline our development workflow, we have adopted the GitHub-style projects framework, with all repositories linked to the ThreeFold Grid (tfgrid) product (e.g., version 3.6.0).
- Various views, such as StoryCards for a high-level overview, repository-specific views, and prioritized views, enhance project visibility.
- All repositories are managed within a centralized project, ensuring unified control and coordination.
- Milestones, aligned with semantic versioning, serve as a means to categorize and organize issues, providing versioning per component.
- Each product is clearly outlined in a dedicated project section within the "home" repository.
- The home page in the home repository serves as a hub linking to individual product pages.
- Products are associated with relevant components slated for the upcoming release.
- Product release milestones are clearly marked on the product page.
- Release notes, accessible through each product, offer a historical overview with links to specific components used in each release.
- Interlinked relationships between products and components, as well as links to third-party products with specified version numbers, provide comprehensive tracking.
- Components are meticulously monitored within the same product project.
- A commitment to [semantic versioning](https://semver.org) is mandated for all components.
## Github Project
When creating a new project, please use the grid template project (private repository) available at `https://github.com/orgs/threefoldtech/projects/205`.
### Github project columns
- `No Status`
- Stakeholder or project owner suggests a feature/story/bug to be resolved in this release
- `Accepted`
- The project owner accepts the item, the issue will be worked on and he commits to solve within the release
- Once accepted = then escalation is needed if it can not be done in time
- `In progress`
- The issue is being worked on
- `Blocked`
- We are using the Kanban way of thinking - something in this swimlane needs to be resolved asap, can be e.g. a question
- Means issue cannot be completed, attention from e.g. stakeholders is needed
- `Verification` : work is being verified
- The team delivered the feature/bug/story
- Stakeholders need to agree that the issue has been resolved appropriately
- Project owner can never go from 'Verification' to 'Done' without approval from stakeholders (often represented by QA team)
- `Done`
- Everyone agreed (project owner and stakeholders) agreed that the issue was done ok
##### Project Special Columns
Some projects require special columns like the following
- `Pending Review`: Work is done, waiting for review; no need for daily progress updates.
- `Pending Deployment`: If deployment is needed for QA testing on the staging instance.
### Repository
Creating a repository involves establishing a foundation for collaborative development. Follow these guidelines to ensure consistency and best practices in repository creation.
#### Naming
- Choose a clear and descriptive name for the repository.
- Use lowercase letters and hyphens for improved readability.
#### README
- Include a comprehensive README.md file.
- Provide essential information about the project, including setup instructions, dependencies, and usage guidelines.
#### License
- Include a LICENSE file specifying the project's licensing terms, threefoldtech is using [Apache2 License](https://github.com/threefoldtech/info_grid/blob/master/LICENSE).
#### Github Templates
- Use github templates to provide proper template for issues [bug_report](./bug_report.md) or [feature request](./feature_request.md)
- Use github templates to provide proper template for [pull requests](./PULL_REQUEST_TEMPLATE.md)
#### Expected Workflows
- Set up a continuous integration (CI) pipeline using a tool like GitHub Actions.
- Include linting, tests and code quality checks in the CI process.
- Set up automation to deployment on staging, and production server
- Building docker images
- Building flists
- Pushing to the hub
- Publishing packages
### Issues
Consider the following for Effective Issue Reporting
1. **Title:**
- Provide a clear and concise title that summarizes the issue.
2. **Description:**
- Offer a detailed description of the issue, including what you expected to happen and what actually occurred.
- Provide steps to reproduce the issue, if possible.
- Include any error messages received.
3. **Environment:**
- Specify the environment in which the issue occurred (e.g., operating system, browser, version).
4. **Attachments:**
- Attach relevant files or screenshots to help visualize the problem.
5. **Issue Type:**
- Label the issue with an appropriate type (e.g., bug, feature request, question).
6. **Priority:**
- If applicable, assign a priority level to indicate the urgency of the issue.
7. **Version Information:**
- Include information about the version of the software or application where the issue was encountered.
8. **Labels:**
- Apply relevant labels to categorize the issue (e.g., priority levels, type of issue).
9. **Reproducibility:**
- Clearly state whether the issue is reproducible and under what conditions.
10. **Additional Context:**
- Provide any additional context that might help in understanding and addressing the issue.
11. **Assigned:**
- If known, assign the issue to the responsible team member or developer.
12. **Discussion:**
- Engage in discussions with the development team and other stakeholders to gather insights and potential solutions.
By following these guidelines, you contribute to a more efficient issue resolution process, enabling developers and the team to address concerns promptly and effectively.
#### Issue Labels
See [issue labels](issue_labels.md)
#### Branch Names in Issue titles
Each issue has the name of a branch in the title as [development_something], the name 'development' can be skipped and its the default or previous could also be written as [something] but don't forget branch is development_...
If not specified, it is to be fixed/developed on development.
#### Milestones for Issues
We use milestones for version numbers e.g `1.4.2` means this issue is going to be part of the release of `1.4.2` of the component.
> It's very important that nobody works on any issue in milestones not part of the global project plan
- No milestone means need to be sorted
- Number e.g `1.4.2` means
So issues with no milestones can only be in 1 condition: new and not sorted out yet where (repo) it belongs
### Branching
We encourage collaborative branching. Meaning any group of people working within the same scope are highly encouraged to work on the same branch, trusting and communicating with one another.
Our branching strategy is:
- `master` is the last stable release
- `master_$hotfix` is only for solving BLOCKING issues which are in the field on the last release
- short living
- `development` is where all stories branch from, and the one that has hotfixes if needed
- `development_$storyname`
- branch for a story
- always updated from development(_hotfixes)
- `development_$storyname_$reviewname`
- short living branch for when reviews are needed for a story
- `development_hotfixes` short living hotfix(es) to allow people to review and then put on development
- now everyone should update from or development or development_hotfixes
- development_hotfixes is always newer than development
- `integration` is a branch used to integrate development branches
- never develop on it, its for verifying & doing tests
We have branches for new features/disruptive changes. These have a prefix of `development_<relevantname>`
Each project and story should define which branches to use & the branching strategy.
There should never be any branch on the system which can not be found back by looking at the stories in the `home` repo.
Title of the story : in between []
### Pull Requests
When developers or a group initiate work on a separate branch and seek input from their peers, it is recommended to promptly open a `draft pull request` for seamless communication. Upon completion of the work, opening a pull request signals that the work is:
- Complete as Defined in the Project: The work aligns with the predefined goals and specifications outlined in the project.
- Well Tested: Thorough testing has been conducted to ensure the reliability and functionality of the code.
- Well Documented: Comprehensive documentation accompanies the code, aiding in understanding and future maintenance.
#### Pull Requests Best Practices
When creating pull requests (PRs), adhere to the following best practices for effective collaboration:
- Early Draft PRs: Open a draft pull request as soon as work begins on a different branch. This allows for ongoing communication and collaboration with peers throughout the development process.
- Timely Updates: Regularly update the PR as new changes are made to keep reviewers informed of progress.
- Clear and Concise Title: Use a clear and concise title that summarizes the purpose or goal of the pull request.
- Detailed Description: Provide a comprehensive description of the changes made, the problem solved, and any relevant context. This aids reviewers in understanding the purpose and impact of the changes.
- Link to Issues: If the pull request addresses specific issues, link them to provide additional context and traceability.
- Reviewers and Assignees: Assign the appropriate reviewers and, if applicable, assignees to ensure that the right people are involved in the review process.
- Complete Work: Ensure that the work is complete as defined in the project requirements. Address any outstanding issues before marking the PR as ready for review.
- Thorough Testing: Verify that the code has undergone thorough testing. Include details about the testing strategy and results in the PR description.
- Documentation: Confirm that the changes are well-documented. Documentation should not only explain how the code works but also guide future developers on its usage and maintenance.
- Address Feedback: Be responsive to feedback from reviewers. Address comments and concerns promptly to facilitate a smooth review process.
- Code Style and Standards: Ensure that the code follows established style guidelines and coding standards. Consistent formatting contributes to maintainability.
- Status Checks: Ensure that automated status checks, such as continuous integration (CI) tests, pass successfully before merging.
By adhering to these best practices, you contribute to a collaborative and efficient development process, fostering a culture of high-quality code and effective communication within the team.
### Commits
Clear and informative commit messages are essential for understanding the history of a project. Follow these guidelines to create meaningful commit messages.
## Message Structure
### Header
- Start with a concise one-line summary
- Use present-tense verbs (e.g., "Add," "Fix," "Update") to describe the action.
### Body
- Optionally, provide a more detailed explanation.
- Break long explanations into bullet points if needed.
## Be Descriptive
- Clearly describe the purpose of the commit.
- Include information about why the change is necessary.
## Reference Issues
- If the commit is related to an issue, reference it in the message.
- Use keywords like "Fixes," "Closes," or "Resolves."
## Consistency
- Be consistent with your writing style and formatting.
- Use the imperative mood consistently throughout.
## Examples
### Good Example
Here's a good example of a commit message
```
Add user authentication feature
- Implement user login functionality
- Enhance user registration form
- Fixes #123
```
### Bad Example
```
Changes
- Bug fix
- Update
- Important changes
```
### Merge or Rebase
If you're the sole developer on the branch, you can use rebase, if more people are collaborating together, use merge
### Merge or Squash merge
Squash only when it makes the history cleaner. Feature branch is a good example, because it is often short-lived, small, and authored by 1 developer.
On the other hand, use regular merge for big feature co-authored by multiple developers eg. long-lived branches, please be aware of the [Disadvantages of squash merges](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github#squashing-your-merge-commits)
### Releasing Process
Before tagging a release, open a branch named with the intended version e.g 10.5.x with the quality level
- alpha: doesn't have all the features, but you can use the features in there
- beta: no major, or blocking bugs. All features working for the customer as promised, no blocking bugs
- production: no major, no blocking, no minor bugs and the documentation is ready
check the [release process document](release_process.md) for more information
#### Blocking
Issues categorized as blockers include:
- Inability of the customer to access the functionality as described in the manual.
- Stability concerns that impede progress, particularly instances where the system crashes.
- Security issues that act as barriers to further development.
- Stability issues that hinder smooth operation.
- Performance concerns labeled as blockers when they prevent continuation.
- Performance issues classified as major when they allow for continued work.
#### Progress Reporting
In teams operating remotely, complete transparency is of utmost importance.
Visibility into development progress is crucial and is best achieved through the use of storycards and issues.
To facilitate clear communication, commenting daily is a critical aspect of our process. We advocate for the following format, which aids in asynchronous communication:
```
## Work Completed:
Summarize the tasks successfully finished in relation to the issue. Provide specific details to ensure clarity.
## Work in Progress (WIP):
Detail ongoing efforts and remaining tasks related to this issue. Clearly outline items currently being worked on and those still needing attention.
## Investigation and Solution:
If no work has been completed or is in progress, elaborate on the investigative work undertaken to address the issue. Provide insights into the problem, and if a solution was reached, include it.
```
For issues or stories labeled with `priority_critical`, continuous updates should be at least two updates per day to keep stakeholders informed.
Including an Estimated Time of Arrival (ETA) in the comments is essential. While it serves as an estimation subject to change with new findings, it provides a valuable projection of completion.
# Quality Assurance (QA) Process
QA plays a crucial role in delivering high-quality software. This document outlines responsibilities, expectations, and best practices.
## QA Responsibilities
### Daily Standups
- Attend daily standups for progress updates, issue discussions, and coordination.
### Provide Test Plans
- Collaborate on test plans for each sprint.
### Test Execution
- Execute test plans manually and through automated testing.
- Log and prioritize defects.
- Track nightly tests.
### Test Documentation
- Maintain updated test documentation.
### Verification and Closure
- Verify issues and user stories before closure.
### Cross-Environment Testing
- Conduct test runs across different environments.
### Bug Assessment Meetings (BAM)
- Conduct BAM sessions twice weekly to address community feedback, covering both `test_feedback` repository and active projects.
### Additional Testing Types
- Expand responsibilities to include various testing types such as:
- Performance testing
- Security testing
- Compatibility testing
- Usability testing
- Regression testing
## Expectations for QA Leads
### Test Planning
- Lead the creation of detailed test plans.
### Test Strategy
- Define a testing strategy, emphasizing automation.
### Review and Closure
- Review and close issues, ensuring alignment with the test plan.
### Communication
- Facilitate communication between QA and development teams.
## QA Verification and Testing
### Testplan
- Provide a comprehensive test plan, authored exclusively by the QA lead that serves as the source of truth for the verification process
### Verification Process
- Verify stories in a two-step process
- As soon as the story is moved to In Verification column, QA team can pickup the issue, they need to log their scenarios, executions and link to the testcase in the testplan.
- QA lead can then verify it's aligned to the original requirements and it was properly verified before closing
- QA leads need to test the main features by themselves.
- Automate regression testing through github workflows, and any other means needed.

View File

@@ -0,0 +1,16 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
## Is your feature request related to a problem? Please describe
A clear and concise description of what the problem is. Ex. I'm always frustrated when \[...]
## Describe the solution you'd like
A clear and concise description of what you want to happen.

View File

@@ -0,0 +1,24 @@
# Issue Labels Usage Guidelines
Kindly refrain from using labels other than the specified ones.
## Priority-based Labels
- `priority_critical`: This label indicates that the issue requires immediate attention, with a maximum resolution timeframe of the same day.
- If the assigned developer deems this timeline unachievable, they must escalate the issue immediately.
- The term "critical" implies that the resolution is of utmost urgency, and everyone involved should prioritize it until it is resolved.
- `priority_major`: This label designates issues that are very urgent and should be addressed within a minimal timeframe, typically within 1-2 days but no more than 3 days.
- If the developer anticipates challenges in meeting this timeframe, they are required to escalate the issue promptly.
- `priority_minor`: Issues labeled as such are given a lower priority and are typically positioned towards the end of the sprint cycle.
## Types Labels
- `type_bug`
- `type_feature`
- `type_question`
- `type_story`: This label is used to distinguish story cards, providing an overview of a use case the team aims to achieve.
### For monorepos
Repository owners are free to create labels per component in the monorepo for easier repo management

View File

@@ -0,0 +1,18 @@
### Description
Describe the changes introduced by this PR and what does it affect
### Changes
List of changes this PR includes
### Related Issues
List of related issues
### Checklist
- [ ] Tests included
- [ ] Build pass
- [ ] Documentation
- [ ] Code format and docstring

View File

@@ -0,0 +1,53 @@
<h1> Release Process </h1>
<h2>Table of Contents</h2>
- [Github projects](#github-projects)
- [Releasing the Grid](#releasing-the-grid)
- [Environments](#environments)
- [Versions](#versions)
- [Branching/Tagging](#branchingtagging)
- [Blocking Bugfixes for Mainnet](#blocking-bugfixes-for-mainnet)
***
## Github projects
- We are going to use new github style projects to manage the development process, all repos are linked against tfgrid product e.g 3.6.0
- You can have different views e.g StoryCards only view for Highlever overview, a view by repositories, priorities
- We will drive all repos from that one project
- We should use milestones (semantic version to sort out the issues)
## Releasing the Grid
### Environments
- Grid releases are no longer linked to an environment in a pipeline, while this makes sense in lots of scenarios, it won't scale
- An environment hosts a specific grid version based on the components it has
- In the future, we should be able to create ephermal environments e.g deploy this grid version on these X number of nodes
### Versions
- Releasing should follow [semantic versioning](https://semver.org/)
- Every grid release is linked to X number of components. For example, TFGrid 3.6.1 is linked to terraform 1.0.0, portal 2.0.1, .. etc
### Branching/Tagging
- As mentioned above, releases should should follow semantic versioning. The tag itself is prefixed with a `v`. so vx.y.z or vx.y.z-rc1
- Devnet(s) should host development branches and once it reaches a specific quality they get verified on that branch
- THIS IS NOT TRUE: it can be that on a dev net you have production components
- Once verification happens and everything goes ok, we should tag a release of a component
- Once all components are ready a grid release is complete and we can host that release on whatever environment
- Container image tags must not contain the `v`-prefix
### Blocking Bugfixes for Mainnet
- In case of a blocking bug happening only on mainnet, we branch out of the tag on the affected component repository
- do the fix on that branch
- host a new grid release on a testing environment to verify
- tag the new component
- merge to trunk
- create a new grid release
- host that grid release (its components) on mainnet

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View File

@@ -0,0 +1,52 @@
<h1>Testing the ThreeFold Grid: Ensuring Reliability and User Feedback</h1>
<h2>Table of Contents</h2>
- [Introduction](#introduction)
- [Automation Testing](#automation-testing)
- [Manual Testing](#manual-testing)
- [Covered Tests](#covered-tests)
***
## Introduction
With each release of a newer version of the ThreeFold Grid, the ThreeFold Community plays a vital role in testing the product components and providing constructive feedback to the engineering team. This article explores the testing strategy employed by ThreeFold, which includes both automation and manual testing, and highlights the covered functionality tested by the procedures.
## Automation Testing
The internal QA team conducts automation testing, where they automate various test scenarios and run them in nightly builds. This approach helps identify the status of the code and allows for the early detection of functionality and regression issues.
## Manual Testing
The QA team, along with the grid testing community, performs manual testing. [TestLodge](./testlodge.html) is the chosen platform for managing test plans, test cases, and test runs. By joining TestLodge as a user, individuals can actively participate in running test use cases and reporting any issues encountered during product deployment. Issues can be reported by creating an issue on [ThreeFold's Test Feedback repository](https://github.com/threefoldtech/test_feedback/issues) on Github.
## Covered Tests
The ThreeFold Grid 3 encompasses a wide range of functionalities that are thoroughly tested to ensure their reliability and performance. Some of the covered functionalities include:
- Compute
- Virtual machine
- Caprover
- Kubernetes
- Network
- WebGateway
- Planetary Network
- Storage
- Quantum Safe Storage System (Quantum Safe Filesystem)
- 0-DB
- S3 minio
- TFChain
- Portal
- IPFS
- Farming
- Create Farm
- Farm Management
- TwinServer v2
- TerraForm Deployments
Testing is a crucial aspect of the ThreeFold Grid's development process. By actively involving the ThreeFold Community in testing the product components and leveraging automation and manual testing approaches, the engineering team ensures the reliability and quality of the Grid3.
With TestLodge as the testing platform, users can contribute to the testing efforts by running test use cases and reporting any issues encountered. Through collaborative testing, the ThreeFold Grid continues to evolve and deliver a robust and efficient infrastructure for users worldwide.

View File

@@ -0,0 +1,95 @@
<h1>How to Use TestLodge for Testing the ThreeFold Grid</h1>
<h2>Table of Contents</h2>
- [Introduction](#introduction)
- [Getting Started on TestLodge](#getting-started-on-testlodge)
- [Joining the TF GRID Project on TestLodge by Invitation](#joining-the-tf-grid-project-on-testlodge-by-invitation)
- [Accessing the TF GRID 3.x Projects](#accessing-the-tf-grid-3x-projects)
- [Project Overview](#project-overview)
- [Creating Your Own Personal Test Run](#creating-your-own-personal-test-run)
***
## Introduction
After each release of a newer version of the ThreeFold Grid, we encourage the ThreeFold Community to participate in testing the grid's product components and provide valuable feedback to our engineering team. To facilitate this process, we have adopted TestLodge as our QA and testing platform. TestLodge allows us to efficiently manage test plans, test cases, and test runs for our products. By joining TestLodge as a user, you can assist us in running test cases and reporting any issues encountered during our product deployment processes.
## Getting Started on TestLodge
### Joining the TF GRID Project on TestLodge by Invitation
To become one of our testers on TestLodge, please request an invitation by joining our official [TF Grid Tester
Telegram Group](https://t.me/joinchat/R75FxI_6J6tgn1jK) and sending a personal message to the group's moderator, providing your email address.
Once you receive an invitation, check your email for further instructions and create an account on TestLodge. This will grant you access to the TF GRID Project on TestLodge.
## Accessing the TF GRID 3.x Projects
After successfully creating your account, you can access the TF GRID 3.x Project from your Testlodge dashboard. Simply click on the project to begin the testing process.
### Project Overview
Inside the project, you will find an overview that displays the project's testing environment. Here's a brief description of the project's content:
- Total Test Plans:
Indicates the number of test plans or products being tested in this project.
- Total Requirement Docs:
Represents the amount of testing documentation provided for each test within the project.
- Total Test Suites:
Displays the number of individual test use cases for each product being tested. These test suites are the procedures you will follow as a user/tester.
- Total Test Runs:
Reflects the total number of testing rounds conducted by users within the project. Each tester has their own Test Run, which serves as a testing dashboard for reporting test results. To get started with testing the TF Grid Test Suites, you need to create your own Test Run by using your name as the title.
### Creating Your Own Personal Test Run
To create your personal Test Run, follow these steps:
1. Click on the "Test Runs" tab in the top navigation bar and select "New Test Run."
![](./img/test_run.png)
2. Provide your name as the test name and select "eVDC Deployer" as your test suite since it is a test run for eVDC Deployer. Click on "Select Test Suites and Cases" to view the details of the use cases you want to test.
![](./img/evdc_test.png)
3. On the "Select Test Suites and Cases" page, choose the "Deploy a new eVDC" test suite as your Test Suite. This suite includes the different use cases required to deploy an eVDC.
![](./img/deploy_evdc.png)
4. Click "Add Test Run" to complete the registration of your new test run.
![](./img/add_test.png)
5. You will see a list of all created test runs, including your own. Click on the test run you just created to access your test run profile.
![](./img/my_test.png)
6. In your test run profile, you will find a summary and a list of the test suites you need to run.
![](./img/test_list.png)
7. Click on the "Deploy eVDC" test suite from the list and select "Run Test" to begin testing.
![](./img/run_test.png)
8. Proceed to the eVDC Deployer and commence your test.
![](./img/evdc_home_.jpg)
9. Provide your remarks in the provided comment box and click "Pass," "Fail," or "Skip" based on the result of your test run to provide feedback to the ThreeFold QA Team.
![](./img/report_test.png)
10. Repeat the previous step to complete all
11. Go back to the test runs page to see the overview of all test runs, and make sure that you completed your own test runs as shown below.
![](./img/test_finish.png)
12. Thank you for completing test runs for ThreeFold Grid Project! You can now create an issue on [ThreeFold's Test Feedback repository](https://github.com/threefoldtech/test_feedback/issues) on Github, and report to our development teams about your test findings and feedback.