Skip to content

Commit 9bc3c6c

Browse files
Initial commit
0 parents  commit 9bc3c6c

File tree

102 files changed

+10253
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+10253
-0
lines changed

.github/CODE_OF_CONDUCT.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
2+
# Contributor Covenant Code of Conduct
3+
4+
## Our Pledge
5+
6+
We as members, contributors, and leaders of this open-source project pledge
7+
to make participation in our community and contribution to our project an
8+
inclusive experience for everyone, regardless of age, body size, visible or
9+
invisible disability, ethnicity, gender identity, and expression, sexual identity
10+
and orientation, level of experience, education, socio-economic status,
11+
nationality, personal appearance, race, caste, color, or religion.
12+
13+
We pledge to act and interact in ways that contribute to an open, welcoming,
14+
diverse, inclusive, and healthy community.
15+
16+
## Our Standards
17+
18+
Examples of behavior that contributes to a positive environment for our
19+
community include:
20+
21+
* Demonstrating empathy and kindness toward other people.
22+
* Being respectful of differing opinions, viewpoints, and experiences.
23+
* Giving and gracefully accepting constructive feedback.
24+
* Accepting responsibility and apologizing to those affected by our mistakes,
25+
and learning from the experience.
26+
* Focusing on what is best not just for us as individuals, but for the overall
27+
community.
28+
29+
Examples of unacceptable behavior include:
30+
31+
* The use of sexualized language or imagery, and sexual attention or advances of
32+
any kind
33+
* Trolling, insulting or derogatory comments, and personal or political attacks
34+
* Public or private harassment
35+
* Publishing others' private information, such as a physical or email address,
36+
without their explicit permission
37+
* Other conduct which could reasonably be considered inappropriate in a
38+
professional setting
39+
40+
## Enforcement Responsibilities
41+
42+
Community leaders are responsible for clarifying and enforcing our standards of
43+
acceptable behavior and will take appropriate and fair corrective action in
44+
response to any behavior that they deem inappropriate, threatening, offensive,
45+
or harmful.
46+
47+
Community leaders have the right and responsibility to remove, edit, or reject
48+
comments, commits, code, wiki edits, issues, and other contributions that are
49+
not aligned to this Code of Conduct, and will communicate reasons for moderation
50+
decisions when appropriate.
51+
52+
## Scope
53+
54+
This Code of Conduct applies within all community spaces, and also applies when
55+
an individual is officially representing the community in public spaces.
56+
Examples of representing our community include using an official e-mail address,
57+
posting via an official social media account, or acting as an appointed
58+
representative at an online or offline event.
59+
60+
## Enforcement
61+
62+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
63+
reported to the community leaders responsible for enforcement at
64+
65+
All complaints will be reviewed and investigated promptly and fairly.
66+
67+
All community leaders are obligated to respect the privacy and security of the
68+
reporter of any incident.
69+
70+
## Enforcement Guidelines
71+
72+
Community leaders will follow these Community Impact Guidelines in determining
73+
the consequences for any action they deem in violation of this Code of Conduct:
74+
75+
### 1. Correction
76+
77+
**Community Impact**: Use of inappropriate language or other behavior deemed
78+
unprofessional or unwelcome in the community.
79+
80+
**Consequence**: A private, written warning from community leaders, providing
81+
clarity around the nature of the violation and an explanation of why the
82+
behavior was inappropriate. A public apology may be requested.
83+
84+
### 2. Warning
85+
86+
**Community Impact**: A violation through a single incident or series of
87+
actions.
88+
89+
**Consequence**: A warning with consequences for continued behavior. No
90+
interaction with the people involved, including unsolicited interaction with
91+
those enforcing the Code of Conduct, for a specified period of time. This
92+
includes avoiding interactions in community spaces as well as external channels
93+
like social media. Violating these terms may lead to a temporary or permanent
94+
ban.
95+
96+
### 3. Temporary Ban
97+
98+
**Community Impact**: A serious violation of community standards, including
99+
sustained inappropriate behavior.
100+
101+
**Consequence**: A temporary ban from any sort of interaction or public
102+
communication with the community for a specified period of time. No public or
103+
private interaction with the people involved, including unsolicited interaction
104+
with those enforcing the Code of Conduct, is allowed during this period.
105+
Violating these terms may lead to a permanent ban.
106+
107+
### 4. Permanent Ban
108+
109+
**Community Impact**: Demonstrating a pattern of violation of community
110+
standards, including sustained inappropriate behavior, harassment of an
111+
individual, or aggression toward or disparagement of classes of individuals.
112+
113+
**Consequence**: A permanent ban from any sort of public interaction within the
114+
community.
115+
116+
## Attribution
117+
118+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
119+
version 2.1, available at
120+
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
121+
122+
Community Impact Guidelines were inspired by
123+
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
124+
125+
For answers to common questions about this code of conduct, see the FAQ at
126+
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
127+
[https://www.contributor-covenant.org/translations][translations].
128+
129+
[homepage]: https://www.contributor-covenant.org
130+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
131+
[Mozilla CoC]: https://github.com/mozilla/diversity
132+
[FAQ]: https://www.contributor-covenant.org/faq
133+
[translations]: https://www.contributor-covenant.org/translations

.github/CONTRIBUTING.md

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# Contributing to Test-at-scale
2+
3+
Thank you for your interest in Test-at-scale and for taking the time to contribute to this project. If you feel insecure about how to start contributing, feel free to ask us on our [Discord Server](https://discord.gg/Wyf8srhf6K) in the #contribute channel.
4+
5+
## **Code of conduct**
6+
7+
Read our [Code of Conduct](CODE_OF_CONDUCT.md) before contributing.
8+
9+
10+
## **How can I contribute?**
11+
12+
There are many ways in which you can contribute to Test-at-scale.
13+
14+
#### 👥 Join the community
15+
  Join our [Discord server](https://discord.gg/Wyf8srhf6K), help others use Test-at-scale for their test automation requirements.
16+
17+
#### 🗣️ Give a talk about Test-at-scale
18+
  You can talk about Test-at-scale in online/offline meetups. Drop a line to [[email protected]](mailto:[email protected]) ahead of time and we'll send you some swag. 👕
19+
20+
#### 🧩 Build an Add-on
21+
  Enhance Test-at-scale’s capabilities by building add-ons to solve unique problems.
22+
23+
#### 🐞 Report a bug
24+
  Report all issues through GitHub Issues and provide as much information as you can.
25+
26+
#### 🛠 Create a feature request
27+
  We welcome all feature requests, whether for new features or enhancements to existing features. File your feature request through GitHub Issues.
28+
29+
#### 📝 Improve the documentation
30+
  Suggest improvements to our documentation using the [Documentation Improvement](https://github.com/LambdaTest/test-at-scale/issues/new) template. Test-at-scale docs are published on [here](https://www.lambdatest.com/support/docs/getting-started-with-tas/)
31+
32+
33+
#### 📚 Contribute to Tutorials
34+
  You can help by suggesting improvements to our tutorials using the [Tutorials Improvement](https://github.com/LambdaTest/test-at-scale/issues/new) template or create a new tutorial.
35+
36+
37+
#### ⚙️ Write code to fix a Bug / new Feature Request
38+
  We welcome contributions that help make Test-at-scale bug-free & improve the test automation experience for our users. You can also find issues tagged [Good First Issues](https://github.com/LambdaTest/test-at-scale/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22"). Check out the below sections to begin.
39+
40+
 
41+
42+
## **Writing Code**
43+
All submissions, including submissions by project members, require review. Before raising a pull request, ensure you have raised a corresponding issue and discussed a possible solution with a maintainer. This gives your pull request the highest chance of getting merged quickly. Join our [Discord Server](https://discord.gg/Wyf8srhf6K) if you need any help.
44+
45+
46+
### First-time contributors
47+
We appreciate first-time contributors and we are happy to assist you in getting started. In case of questions, just [reach out to us!](https://discord.gg/Wyf8srhf6K)
48+
You find all issues suitable for first-time contributors [here.](https://github.com/LambdaTest/test-at-scale/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
49+
50+
51+
### Repo overview
52+
53+
[LambdtaTest/test-at-scale](https://github.com/LambdaTest/test-at-scale/) consists of 2 components:
54+
55+
- **Synapse:** is the agent responsible for fetching jobs from Test at Scale servers to execute them on the self hosted environment (your laptop or your server farm). Synapse coordinates with nucleus (test runner) and TAS cloud to execute tests and push out test details such as test name, test suite, execution logs, execution metrics.
56+
- **Test Runners:** component is the driving agent of the container executed to run the actions received by synapse. All actions will be executed on Linux containers and itself manages the lifecycle of the container. It provides functionalities such as logging, metric collections, etc. It primarily conducts two primary stages viz. test discovery and test execution. Both of these stage are accomplished by using plugins for language and framework to make sure nucleus is not tightly coupled with specific languages.
57+
58+
<details>
59+
<summary>Read More</summary>
60+
We've engineered the platform such that you can setup the test-runners anywhere, from your local workstation to any cloud (AWS, Azure, GCP etc), as per your convenience.
61+
<p align="center">
62+
<img loading="lazy" src={require('https://staging.lambdatest.com/support/assets/images/synapse-tas-interaction-a70a50f02b2e6e99491777ce636538f4.png').default} alt="Synapse Architecture" width="1340" height="617" className="doc_img"/>
63+
</p>
64+
65+
When you configure TAS to run in a self-hosted environment, all the test execution jobs are executed inside your environment. Your code stays within your setup environment. To provide you with test-insights on the TAS portal we store information only related to tests like name of testFile, testCase, testSuite and execution logs. At no point, we collect business logic of your code.
66+
67+
68+
Here is a sample flow to understand how it works:
69+
- After Configure TAS self-hosted mode and integrating your repositories into TAS platform.
70+
- Whenever you make a commit, raise a PR or merge a PR, the TAS platform receives a webhook event from your git provider.
71+
- This webhook event is simply sent to your self-hosted environment to initate jobs for test execution.
72+
- The Test-at-scale binary running on your self hosted enviroment spawns containers to execute those jobs.
73+
- Basic test metadata is sent to the TAS server to provide you with test insights and other relevant statistics over the TAS dashboard.
74+
- Your code or business logic never leaves your setup environment.
75+
- As your workload increases you can add more servers running Test-at-scale binary, which will distribute the load amongst them automatically.
76+
- Routing: TAS platform will send the test execution jobs to the connected self hosted environments which are online and have enough resources to run the job.
77+
- If the resources are insufficient or fully occupied, the jobs will remain queued on for 2.5 hour and keep checking for resource availability every 30 seconds.
78+
- If TAS platform is unable to find any connected self-hosted binary which can execute the job, it will be marked as failed.
79+
80+
</details>
81+
82+
### Set up your branch to write code
83+
84+
We use [Github Flow](https://guides.github.com/introduction/flow/index.html), so all code changes happen through pull requests. [Learn more.](https://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/)
85+
86+
1. Please make sure there is an issue associated with the work that you're doing. If it doesn’t exist, [create an issue.](https://github.com/LambdaTest/test-at-scale/issues)
87+
2. If you're working on an issue, please comment that you are doing so to prevent duplicate work by others also.
88+
3. Fork the repo and create a new branch from the `dev` branch.
89+
4. Please name the branch as <span style="color:grey">issue-[issue-number]-[issue-name(optional)]</span> or <span style="color:grey">feature-[feature-number][feature-name(optional)]</span>. For example, if you are fixing Issue #205 name your branch as <span style="color:grey">issue-205 or issue-205-selectbox-handling-changes</span>
90+
5. Squash your commits and refer to the issue using `Fix #<issue-no>` in the commit message, at the start.
91+
6. Rebase `dev` with your branch and push your changes.
92+
7. Raise a pull request against the staging branch of the main repository.
93+
94+
95+
## **Committing code**
96+
97+
The repository contains two important (protected) branches.
98+
99+
* main contains the code that is tested and released.
100+
* dev contains recent developments under testing. This branch is set as the default branch, and all pull requests should be made against this branch.
101+
102+
Pull requests should be made against the <span style="color:grey">dev</span> branch. <span style="color:grey">staging</span> contains all of the new features and fixes that are under testing and ready to go out in the next release.
103+
104+
105+
#### **Commit & Create Pull Requests**
106+
107+
1. Please make sure there is an issue associated with the work that you're doing. If it doesn’t exist, [create an issue](https://github.com/LambdaTest/test-at-scale/issues).
108+
2. Squash your commits and refer to the issue using `Fix #<issue-no>` in the commit message, at the start.
109+
3. Rebase `dev` with your branch and push your changes.
110+
4. Once you are confident in your code changes, create a pull request in your fork to the `dev` branch in the LambdaTest/test-at-scale base repository.
111+
5. Link the issue of the base repository in your Pull request description. [Guide](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
112+
6. Fill out the [Pull Request Template](./pull_request_template.md) completely within the body of the PR. If you feel some areas are not relevant add `N/A` but don’t delete those sections.
113+
114+
115+
#### **Commit messages**
116+
117+
- The first line should be a summary of the changes, not exceeding 50
118+
characters, followed by an optional body that has more details about the
119+
changes. Refer to [this link](https://github.com/erlang/otp/wiki/writing-good-commit-messages)
120+
for more information on writing good commit messages.
121+
122+
- Don't add a period/dot (.) at the end of the summary line.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: 🐞 Bug report
2+
description: Create a bug report to help us improve Test-at-scale
3+
title: "[Bug]: "
4+
labels: [bug, needs-triaging]
5+
assignees:
6+
- nevilm-lt
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
Thanks for taking the time to fill out this bug report! Please fill the form in English
12+
- type: checkboxes
13+
attributes:
14+
label: Is there an existing issue for this?
15+
description: Please search to see if an issue already exists for the bug you encountered.
16+
options:
17+
- label: I have searched the existing issues
18+
required: true
19+
- type: textarea
20+
attributes:
21+
label: What is the current behavior?
22+
description: Add a brief description of what you are experiencing.
23+
validations:
24+
required: true
25+
- type: textarea
26+
attributes:
27+
label: What is the expected behavior?
28+
description: A brief description of what you expect.
29+
validations:
30+
required: true
31+
- type: textarea
32+
attributes:
33+
label: Steps To Reproduce
34+
description: Add steps to reproduce this behavior, include console / network logs & screenshots
35+
placeholder: |
36+
1.
37+
2.
38+
3.
39+
4.
40+
validations:
41+
required: true
42+
- type: dropdown
43+
id: version
44+
attributes:
45+
label: Version
46+
options:
47+
- Test-at-scale Cloud
48+
- Test-at-scale Community Edition
49+
- Test-at-scale Enterprise Edition
50+
validations:
51+
required: true
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: 🛠️ Feature request
2+
description: Suggest an idea to improve Test-at-scale
3+
title: "[Feature]: "
4+
labels: [enhancement]
5+
assignees:
6+
- anmol-LT
7+
body:
8+
- type: checkboxes
9+
attributes:
10+
label: Is there an existing issue for this?
11+
description: Please search to see if an issue related to this feature request already exists.
12+
options:
13+
- label: I have searched the existing issues
14+
required: true
15+
- type: textarea
16+
attributes:
17+
label: What would you like to add?
18+
description: A clear description of the feature or enhancement wanted in Test-at-scale.
19+
validations:
20+
required: true
21+
- type: textarea
22+
attributes:
23+
label: Why should this be worked on?
24+
description: A concise description of the problems or use cases for this feature request.
25+
validations:
26+
required: true
27+
- type: textarea
28+
attributes:
29+
label: Other details
30+
validations:
31+
required: false
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: 📖 Docs & Tutorials Improvement
2+
description: Suggest improvements to our docs and tutorials
3+
title: "[Docs & Tutorials]: "
4+
labels: [docs-tutorials]
5+
assignees:
6+
- nevilm-lt
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
Thanks for taking the time to fill out this docs/tutorials improvement request!
12+
- type: checkboxes
13+
attributes:
14+
label: Is there an existing issue for this?
15+
description: Please search to see if an issue realated to this already exists.
16+
options:
17+
- label: I have searched the existing issues
18+
required: true
19+
- type: input
20+
attributes:
21+
label: Doc/tutorial link
22+
description: Add a link to the page which needs improvement (optional)
23+
validations:
24+
required: false
25+
- type: textarea
26+
attributes:
27+
label: Explain the problem
28+
description: Is the documentation/tutorial missing? Or is it not clear? What is not clear?
29+
validations:
30+
required: true
31+
- type: textarea
32+
attributes:
33+
label: Your inputs to improve
34+
description: Your inputs to improve/add new documentation or tutorial.
35+
validations:
36+
required: true

0 commit comments

Comments
 (0)