Skip to content

Commit

Permalink
chore: Project scaffolding (#1)
Browse files Browse the repository at this point in the history
* update readme from generated project

* Initial project template

* add codeowners

* correct info in package.json

* add ts deps

* more ts config

* configure eslint

* add prettier

* apply prettier to src

* correctly apply eslint prettyier config

* put tsconfig in the right place

* Add a build script

* remove unused babel config

* Remove gulp

* remove gulp deps

* Bah, use the old config

* add testcafe peer dep

* single quotes for prettier

* Add lint workflow

* Add fmt script

* Target es5

That's the default target in babel that was setup when the project is
created using the yeoman template.

* rimraf the lib dir when building

* remove empty test folder

* add an e2e test

* eslint ignore patterns

* Remove build status from readme

* update license

* update readme

* Use common devx PR template

* use range for peer dep

* specifically ignore e2e

* beta versioning

* Widen peer dep target

* correctly use .nvmrc

* name steps

* use team PR template

* make sure we're actually linting something

* Lint and prettify test files too

* apply prettier to test

* fmt code on pre-commit

* try to commit unformatted code

* Change name to testcafe-browser-provider-sauce
  • Loading branch information
mhan83 authored Feb 22, 2024
1 parent 96b74ca commit bf48408
Show file tree
Hide file tree
Showing 17 changed files with 13,994 additions and 168 deletions.
8 changes: 8 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/* eslint-env node */
module.exports = {
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
root: true,
ignorePatterns: ['**/lib/**/*']
};
36 changes: 1 addition & 35 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,35 +1 @@
# These owners will be the default owners for everything in
# the repo.
* _codeowners_



# Samples for assigning codeowners below:
# Order is important; the last matching pattern takes the most
# precedence. When someone opens a pull request that only
# modifies JS files, only @js-owner and not the global
# owner(s) will be requested for a review.
# *.js @js-owner

# You can also use email addresses if you prefer. They'll be
# used to look up users just like we do for commit author
# emails.
# *.go [email protected]

# In this example, @doctocat owns any files in the build/logs
# directory at the root of the repository and any of its
# subdirectories.
# /build/logs/ @doctocat

# The `docs/*` pattern will match files like
# `docs/getting-started.md` but not further nested files like
# `docs/build-app/troubleshooting.md`.
# docs/* [email protected]

# In this example, @octocat owns any file in an apps directory
# anywhere in your repository.
# apps/ @octocat

# In this example, @doctocat owns any file in the `/docs`
# directory in the root of your repository.
# /docs/ @doctocat
* @saucelabs/devx
35 changes: 5 additions & 30 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
# One-line summary

> Issue : #1234 (only if appropriate)
## Description
A few sentences describing the overall goals of the pull request's
commits.

## Types of Changes
_What types of changes does your code introduce? Keep the ones that apply:_

- New feature (non-breaking change which adds functionality)
- Bug fix (non-breaking change which fixes an issue)
- Configuration change
- Refactor/improvements
- Documentation / non-code

## Tasks
_List of tasks you will do to complete the PR_
- [ ] Created Task 1
- [ ] Created Task 2
- [ ] To-do Task 3

## Review
_List of tasks the reviewer must do to review the PR_
- [ ] Tests
- [ ] Documentation
- [ ] CHANGELOG

## Deployment Notes
These should highlight any db migrations, feature toggles, etc.
<!--
Describe the big picture of your changes here to communicate to the maintainers
why we should accept this pull request. If it fixes a bug or resolves a feature
request, be sure to link to that issue.
-->
22 changes: 22 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Lint

on:
pull_request:

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup node
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc

- name: Install deps
run: npm i

- name: Lint
run: npm run lint
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
lib
node_modules
1 change: 1 addition & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npx pretty-quick --staged
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v20
3 changes: 3 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"singleQuote": true
}
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) _currentyear_ Sauce Labs Inc.
Copyright (c) 2024 Sauce Labs Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
2 changes: 0 additions & 2 deletions MAINTAINERS

This file was deleted.

119 changes: 19 additions & 100 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,122 +1,41 @@
# Project Boilerplate
# testcafe-browser-provider-sauce

This project contains a template to use when creating a new project. It comes with all the standard files which there is expected to be in an open source project on Github.
This is the official Sauce Labs browser provider plugin for [TestCafe](http://devexpress.github.io/testcafe).

## How to use

1. Clone this project and copy the files into your own project
2. Go through [this checklist](../../issues/1)
3. Start developing!
4. Ensure you are in compliance with Sauce Labs [rules of play](https://opensource.saucelabs.com/docs/releasing/)
5. If in doubt, get in touch with [opensource@saucelabs](mailto:[email protected])

## Readme template

Below you can find a complete readme template for a project. It is the single most important documentation of your project, so make sure you spend time on giving a great first impression to new users and provide the needed information to interested contributors.

----
## Install

```
Readme.md template below, when setup is complete, delete all content above this.
npm install testcafe-browser-provider-sauce
```

# _projectname_

_description_

Describe what this project does. Keep this language human and friendly, so avoid internal references, acronyms and if you
have dependencies, provide a direct link to these.
## Usage

When describing features of your project, remember to explain why these are a benefit and advantage to the user:
You can determine the available browser aliases by running

```
This project allows you to scale X (feature) in a fast and predictable way (benefit) - meaning you will use fewer resources and can be confident in your X environment (Advantage).
testcafe -b sauce
```

Think about your project as a product, consider who your audience is, and how your decisions affect the number of potential users, below is a handy checklist of things to consider before open sourcing any code.

- **Avoid internal dependencies** Obviously projects that require Sauce Labs specific infrastructure, configuration or process have very limited use to anyone outside Sauce Labs.
- **Avoid narrow usecases** Does this solve a Sauce Labs-only problem or does it have broarder application - is there things you could change to make it a more general product
- **Have a Product vision** Do you know where you want to take this product? - then be open about it so future contributors are aware. Being opinionated is great and it helps set expectations and the direction for the project
- **Take ownership** Are you are benevolent dictator or open to anything? - consider how you will interact with future contrbutors who expect you to be an active maintainer
- **Safe defaults** How do people get up and running - are there alot of ceremony involved or can you provide a simple out of the box experience so it is easy for users to evaluate your project

## Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
When you run tests from the command line, use the alias when specifying browsers:

```
If possible, provide a quick exemple of how to get this running with minimal effort, so anyone curious can get up and running as fast as possible
testcafe sauce:browser1 'path/to/test/file.js'
```

### Prerequisites
When you use API, pass the alias to the `browsers()` method:

What things you need to install the software and how to install them

```
Give examples
```js
testCafe
.createRunner()
.src('path/to/test/file.js')
.browsers('sauce:browser1')
.run();
```

### Installing
## Development

A step by step series of examples that tell you have to get a development env running

Say what the step will be

```
Give the example
```

And repeat
To use the local version of the plugin, you can link the package:

```
until finished
npm run link
```

End with an example of getting some data out of the system or using it for a little demo

## Running the tests

Explain how to run the automated tests for this system

### Break down into end to end tests

Explain what these tests test and why

```
Give an example
```

### And coding style tests

Explain what these tests test and why

```
Give an example
```

## Deployment

Add additional notes about how to deploy this on a live system

## Built With

* [Dropwizard](http://www.dropwizard.io/1.0.2/docs/) - The web framework used
* [Maven](https://maven.apache.org/) - Dependency Management
* [ROME](https://rometools.github.io/rome/) - Used to generate RSS Feeds

## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our process for submitting pull requests to us, and please ensure you follow the [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).

## Versioning

We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/saucelabs/_projectname_/tags).

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details

## Acknowledgments

* Thanks to [@PurpleBooth](https://github.com/PurpleBooth) and Zalando for the [original boilerplate](https://github.com/zalando-incubator/new-project)
Loading

0 comments on commit bf48408

Please sign in to comment.