Skip to content

Commit

Permalink
doc: contributing & security
Browse files Browse the repository at this point in the history
  • Loading branch information
goulvenclech committed Dec 21, 2024
1 parent ce5cdfc commit f276425
Show file tree
Hide file tree
Showing 31 changed files with 181 additions and 34 deletions.
26 changes: 26 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Contributing to Our Open Source Projects

First, a huge **thank you** for dedicating your time to helping us improve our projects 🧡

## Before Opening Issues

- **Do not report security vulnerabilities publicly** (e.g., in issues or discussions), please refer to our [security policy](https://github.com/web-lsp/weblsp/blob/main/SECURITY.md).
- **Do not create issues for ideas or suggestions.** Instead, share your thoughts in our [GitHub Discussions](https://github.com/web-lsp/weblsp/discussions/categories/ideas).
- **Do not create issues for questions.** Instead, ask your question in our [GitHub Discussions](https://github.com/web-lsp/weblsp/discussions/categories/q-a).
- **Check for duplicates.** Look through existing issues and discussions to see if your topic has already been addressed.
- Provide as much detail as possible. However, don’t worry if it’s incomplete—we will help refine it!

## Before submitting Pull Requests (PRs)

- **Open an issue.** Before making significant changes, open an issue to discuss the problem and potential solutions with us.
- **Check for duplicates.** Look through existing PRs to see if your changes have already been submitted.
- **Avoid trivial changes.** Don't submit PRs for typos, grammar, or insignificant changes, as they will be **declined** without review.
- PRs don't need to be perfect. Submit your best effort, and we will gladly assist in polishing the work.

## Code of Conduct

We’re committed to fostering a welcoming and respectful community. Any issue, PR, or discussion that violates our [code of conduct](https://github.com/web-lsp/weblsp/blob/main/CODE_OF_CONDUCT.md) will be deleted, and the authors will be **banned**.

---

Thank you once again for contributing, we deeply appreciate all contributions, no matter how small or big.
30 changes: 22 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,23 @@
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./.github/assets/WEBlsp_logo_dark.svg" />
<img alt="WEBlsp logo" src="./.github/assets/WEBlsp_logo_light.svg" />
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/web-lsp/weblsp/refs/heads/main/.github/assets/WEBlsp_logo_dark.svg" />
<img alt="WEBlsp logo" src="https://raw.githubusercontent.com/web-lsp/weblsp/refs/heads/main/.github/assets/WEBlsp_logo_light.svg" />
</picture>

A better Language Server for the Web, made with Rust.

(Work In Progress) ~~It provides full-featured language support for HTML and CSS, including syntax highlighting, code completion, error checking, and more.~~ Compliant with the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), WEBlsp is designed to work with any IDE that supports LSP. Build on top of ~~HTMLlsrs~~ and [CSSlsrs](https://github.com/web-lsp/csslsrs), our own modern, fast, and reliable Language Services.
(Work In Progress) ~~It provides full-featured language support for HTML and CSS, including code completion, diagnostics, hover, and more.~~ Compliant with the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), WEBlsp is designed to work with any IDE that supports LSP. Build on top of ~~HTMLlsrs~~ and [CSSlsrs](https://github.com/web-lsp/weblsp/tree/main/crates/csslsrs), our own modern, fast, and reliable Language Services.

This is the root of WEBlsp monorepository, please refer to the list of crates and packages below for more specific information.

## Quick Links

📖 [Main repository](https://github.com/web-lsp/weblsp/), with all related crates and packages.

🐛 [Report a bug](https://github.com/web-lsp/weblsp/issues), please read our [contributing guidelines](https://github.com/web-lsp/weblsp/blob/main/CONTRIBUTING.md) and [code of conduct](https://github.com/web-lsp/weblsp/blob/main/CODE_OF_CONDUCT.md) first.

🚨 [Report a security vulnerability](https://github.com/web-lsp/weblsp/security/advisories/new), and be sure to review our [security policy](https://github.com/web-lsp/weblsp/blob/main/SECURITY.md).

💬 [Join the discussion](https://github.com/web-lsp/weblsp/discussions), if you have any questions, ideas, or suggestions.

## Crates

Expand All @@ -20,8 +32,10 @@ WEBlsp is a monorepo that contains the following crates (Rust packages):

Additionally, WEBlsp contains the following NPM packages (JavaScript packages):

| Name | Description | NPM | README |
| ---------------- | ------------------------- | --- | ------------------------------------------------ |
| `vscode` | WEBlsp VSCode extension | WIP | [README.md](./packages/vscode/README.md) |
| `csslsrs` | WASM CSS Language Service | WIP | [README.md](./packages/csslsrs/README.md) |
| `benchmark-wasm` | Benchmark WASM packages | WIP | [README.md](./packages/benchmark-wasm/README.md) |
| Name | Description | NPM | README |
| --------------------- | ------------------------------------------ | --- | ----------------------------------------------------- |
| `vscode` | WEBlsp VSCode extension | WIP | [README.md](./packages/vscode/README.md) |
| `csslsrs` | WASM CSS Language Service | WIP | [README.md](./packages/csslsrs/README.md) |
| `benchmark-wasm` | Benchmark WASM packages | WIP | [README.md](./packages/benchmark-wasm/README.md) |
| `ls-tests-benchmarks` | End-to-end tests and benchmarks for WEBlsp | WIP | [README.md](./packages/ls-tests-benchmarks/README.md) |

28 changes: 28 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Security Policy

## Supported Versions

The following versions of our projects are currently supported with security updates:

| Package | Version | Supported |
| ------- | ------- | ------------------ |
| WEBlsp | 0.x.x | :white_check_mark: |
| CSSlsrs | 0.x.x | :white_check_mark: |

## Reporting a Vulnerability

We take security issues very seriously. If you discover a vulnerability, please report it through our private reporting form: [Report a Security Vulnerability](https://github.com/web-lsp/weblsp/security/advisories/new).

### Guidelines for Reporting
- Do **not** report vulnerabilities publicly via issues or discussions.
- Please provide as much detail as possible about the vulnerability to help us investigate and resolve it quickly.

### What to Expect
- You will receive an acknowledgement of your report within **48 hours** (working days).
- We will work to fix the issue as soon as possible. In most cases, a fix will be published within **one week** of confirming the vulnerability.

### Post-Fix Communication
Once the fix is deployed, a **public security advisory** will be published here: [Security Advisories](https://github.com/web-lsp/weblsp/security/advisories).
If applicable, credit will be given to the reporter for their responsible disclosure.

We greatly appreciate your efforts to help us maintain the security of our projects.
24 changes: 21 additions & 3 deletions crates/csslsrs/README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../.github/assets/CSSlsrs_logo_dark.svg" />
<img alt="CSSlsrs logo" src="../../.github/assets/CSSlsrs_logo_light.svg" />
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/web-lsp/weblsp/refs/heads/main/.github/assets/CSSlsrs_logo_dark.svg" />
<img alt="WEBlsp logo" src="https://raw.githubusercontent.com/web-lsp/weblsp/refs/heads/main/.github/assets/CSSlsrs_logo_light.svg" />
</picture>

A CSS Language Service made with Rust.

(Work In Progress) ~~It provides full-featured language support for CSS, including syntax highlighting, code completion, error checking, and more.~~ Compliant with the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), CSSlsrs can be integrated into Language Servers written in Rust or JavaScript (via WebAssembly). Thanks to [Biome](https://biomejs.dev/)'s parser, we deliver a fast and efficient language service, designed to improve your productivity when working with CSS.
(Work In Progress) ~~It provides full-featured language support for HTML and CSS, including code completion, diagnostics, hover, and more.~~ Compliant with the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), CSSlsrs can be integrated into Language Servers written in Rust or JavaScript/TypeScript (via WebAssembly). Thanks to [Biome](https://biomejs.dev/)'s parser, we deliver a fast and efficient language service, designed to improve your productivity when working with CSS.

## Quick Links

📖 [Main repository](https://github.com/web-lsp/weblsp/), with all related crates and packages.

🐛 [Report a bug](https://github.com/web-lsp/weblsp/issues), please read our [contributing guidelines](https://github.com/web-lsp/weblsp/blob/main/CONTRIBUTING.md) and [code of conduct](https://github.com/web-lsp/weblsp/blob/main/CODE_OF_CONDUCT.md) first.

🚨 [Report a security vulnerability](https://github.com/web-lsp/weblsp/security/advisories/new), and be sure to review our [security policy](https://github.com/web-lsp/weblsp/blob/main/SECURITY.md).

💬 [Join the discussion](https://github.com/web-lsp/weblsp/discussions), if you have any questions, ideas, or suggestions.

## Features

Expand All @@ -28,3 +38,11 @@ A CSS Language Service made with Rust.
| Validation ||| - |
| Custom data ||| - |
| Super-set of CSS ||| - |

## Getting Started

WIP.

## Building

WIP.
33 changes: 21 additions & 12 deletions crates/weblsp/README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,30 @@
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../.github/assets/WEBlsp_logo_dark.svg" />
<img alt="WEBlsp logo" src=".../../.github/assets/WEBlsp_logo_light.svg" />
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/web-lsp/weblsp/refs/heads/main/.github/assets/WEBlsp_logo_dark.svg" />
<img alt="WEBlsp logo" src="https://raw.githubusercontent.com/web-lsp/weblsp/refs/heads/main/.github/assets/WEBlsp_logo_light.svg" />
</picture>

A better Language Server for the Web, made with Rust.

(Work In Progress) ~~It provides full-featured language support for HTML and CSS, including syntax highlighting, code completion, error checking, and more.~~ Compliant with the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), WEBlsp is designed to work with any IDE that supports LSP. Build on top of ~~HTMLlsrs~~ and [CSSlsrs](https://github.com/web-lsp/csslsrs), our own modern, fast, and reliable Language Services.
(Work In Progress) ~~It provides full-featured language support for HTML and CSS, including code completion, diagnostics, hover, and more.~~ Compliant with the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), WEBlsp is designed to work with any IDE that supports LSP.

## TODO
This crate contains the Language Server implementation in Rust. WEBlsp receives requests from the client, and dispatches them to the appropriate language service (e.g., [CSSlsrs](https://github.com/web-lsp/weblsp/tree/main/crates/csslsrs)), before sending the response back to the client.

- [x] LSP basic server
- [ ] Handle request by language (HTML, CSS)
- [x] CSS Language Service (CSSlsrs) integration
- [ ] HTML Language Service (HTMLlsrs) integration
- [ ] Publish VSCode extension
## Quick Links

📖 [Main repository](https://github.com/web-lsp/weblsp/), with all related crates and packages.

🐛 [Report a bug](https://github.com/web-lsp/weblsp/issues), please read our [contributing guidelines](https://github.com/web-lsp/weblsp/blob/main/CONTRIBUTING.md) and [code of conduct](https://github.com/web-lsp/weblsp/blob/main/CODE_OF_CONDUCT.md) first.

🚨 [Report a security vulnerability](https://github.com/web-lsp/weblsp/security/advisories/new), and be sure to review our [security policy](https://github.com/web-lsp/weblsp/blob/main/SECURITY.md).

💬 [Join the discussion](https://github.com/web-lsp/weblsp/discussions), if you have any questions, ideas, or suggestions.

## Getting Started

WIP.

## Building

WIP.

## Useful commands

- `cargo build` - Build the project
- `cd ./packages/vscode && pnpm run compile` - Compile the vscode extension
4 changes: 2 additions & 2 deletions packages/benchmark-wasm/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# benchmark-wasm
# @web-lsp/benchmark-wasm

This package contains benchmarks for the WASM output of CSSLSRS, comparing it with other popular language services for CSS in JavaScript.
This private package contains benchmarks for the WASM output of CSSLSRS, comparing it with other popular language services for CSS in JavaScript.

## Adding a new benchmark

Expand Down
2 changes: 1 addition & 1 deletion packages/benchmark-wasm/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "benchmark-wasm",
"name": "@weblsp/benchmark-wasm",
"version": "0.0.1",
"private": true,
"type": "module",
Expand Down
29 changes: 27 additions & 2 deletions packages/csslsrs/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,28 @@
# CSSlsrs - WASM CSS Language Service
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/web-lsp/weblsp/refs/heads/main/.github/assets/CSSlsrs_logo_dark.svg" />
<img alt="WEBlsp logo" src="https://raw.githubusercontent.com/web-lsp/weblsp/refs/heads/main/.github/assets/CSSlsrs_logo_light.svg" />
</picture>

Work in progress.
A CSS Language Service made with Rust, for the JavaScript/TypeScript ecosystem.

(Work In Progress) ~~It provides full-featured language support for HTML and CSS, including code completion, diagnostics, hover, and more.~~ Compliant with the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), CSSlsrs can be integrated into Language Servers written in Rust or JavaScript/TypeScript (via WebAssembly). Thanks to [Biome](https://biomejs.dev/)'s parser, we deliver a fast and efficient language service, designed to improve your productivity when working with CSS.

This package contains the WASM implementation of [CSSlsrs](https://github.com/web-lsp/weblsp/tree/main/crates/csslsrs) for JavaScript/TypeScript Language Servers.

## Quick Links

📖 [Main repository](https://github.com/web-lsp/weblsp/), with all related crates and packages.

🐛 [Report a bug](https://github.com/web-lsp/weblsp/issues), please read our [contributing guidelines](https://github.com/web-lsp/weblsp/blob/main/CONTRIBUTING.md) and [code of conduct](https://github.com/web-lsp/weblsp/blob/main/CODE_OF_CONDUCT.md) first.

🚨 [Report a security vulnerability](https://github.com/web-lsp/weblsp/security/advisories/new), and be sure to review our [security policy](https://github.com/web-lsp/weblsp/blob/main/SECURITY.md).

💬 [Join the discussion](https://github.com/web-lsp/weblsp/discussions), if you have any questions, ideas, or suggestions.

## Getting Started

WIP.

## Building

WIP.
2 changes: 1 addition & 1 deletion packages/csslsrs/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "csslsrs",
"name": "@weblsp/csslsrs",
"version": "0.1.1",
"type": "module",
"description": "",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# language-server-tests-benchmarks
# @weblsp/ls-tests-benchmarks

The tests and benchmarks in this folder aims to test and benchmark the language server in a close-to-reality scenario, using the same JavaScript client powered by `vscode-jsonrpc` used in VS Code.
This private package aims to test and benchmark the language server in a close-to-reality scenario, using the same JavaScript client powered by `vscode-jsonrpc` used in VS Code.

## Running the tests

WIP.

## Why are the benchmarks so slow?

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "language-server-tests-benchmarks",
"name": "@weblsp/ls-tests-benchmarks",
"type": "module",
"private": true,
"scripts": {
Expand Down
File renamed without changes.
File renamed without changes.
27 changes: 25 additions & 2 deletions packages/vscode/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
# WEBlsp's vscode extension
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/web-lsp/weblsp/refs/heads/main/.github/assets/WEBlsp_logo_dark.svg" />
<img alt="WEBlsp logo" src="https://raw.githubusercontent.com/web-lsp/weblsp/refs/heads/main/.github/assets/WEBlsp_logo_light.svg" />
</picture>

Work In Progress.
A better Language Server for the Web, made with Rust.

(Work In Progress) ~~It provides full-featured language support for HTML and CSS, including code completion, diagnostics, hover, and more.~~

## Quick Links

📖 [Main repository](https://github.com/web-lsp/weblsp/), with all related crates and packages.

🐛 [Report a bug](https://github.com/web-lsp/weblsp/issues), please read our [contributing guidelines](https://github.com/web-lsp/weblsp/blob/main/CONTRIBUTING.md) and [code of conduct](https://github.com/web-lsp/weblsp/blob/main/CODE_OF_CONDUCT.md) first.

🚨 [Report a security vulnerability](https://github.com/web-lsp/weblsp/security/advisories/new), and be sure to review our [security policy](https://github.com/web-lsp/weblsp/blob/main/SECURITY.md).

💬 [Join the discussion](https://github.com/web-lsp/weblsp/discussions), if you have any questions, ideas, or suggestions.

## Installation

WIP.

## Configuration

WIP.

0 comments on commit f276425

Please sign in to comment.