Skip to content

Commit c9165ff

Browse files
authored
feat: add packages for node (#33)
- feat: add `packages` root for package implementations - feat: add and implement `java` package - feat: add and implement `gradle` package - feat: add and implement `maven` package - test: tests for all packages - chore: ci flow for package build and test - chore: ci reporting for coverage - chore: provenance for package publishing - chore: initial package publish Signed-off-by: Sam Gammon <[email protected]>
1 parent 14a6bbf commit c9165ff

File tree

115 files changed

+10979
-79
lines changed

Some content is hidden

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

115 files changed

+10979
-79
lines changed

.editorconfig

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
insert_final_newline = true
6+
trim_trailing_whitespace = true
7+
end_of_line = lf
8+
indent_style = space
9+
indent_size = 2
10+
max_line_length = 120

.github/AUTHORS.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## Elide Project Authors
2+
3+
This file lists the Elide project authors. A contributor is considered an _author_ to the extent their contributions are
4+
significant enough to impact copyright considerations. This is left to the discretion of project authors but typically
5+
applies when a full feature is contributed by a single author.
6+
7+
### Sam Gammon (@sgammon)
8+
9+
Sam is the original author of Elide and the primary maintainer. He is the code-owner by default unless otherwise
10+
specified. All administrative rights have been delegated to second parties. The previous major versions of Elide, `v1`
11+
and `v2`, were authored by Sam in Python and Java/Kotlin before being retired for Elide's current implementation.
12+
13+
### Dario Valdespino (@darvld)
14+
15+
Dario is a core contributor and maintainer of Elide. He is the code-owner and author of the Express JS intrinsics and
16+
the serving engine.

.github/CODEOWNERS

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.* @sgammon

.github/CODE_OF_CONDUCT.md

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, sex characteristics, gender identity and expression,
9+
level of experience, education, socio-economic status, nationality, personal
10+
appearance, race, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
- Using welcoming and inclusive language
18+
- Being respectful of differing viewpoints and experiences
19+
- Gracefully accepting constructive criticism
20+
- Focusing on what is best for the community
21+
- Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
- The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
- Trolling, insulting/derogatory comments, and personal or political attacks
28+
- Public or private harassment
29+
- Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
- Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies within all project spaces, and it also applies when
49+
an individual is representing the project or its community in public spaces.
50+
Examples of representing a project or community include using an official
51+
project e-mail address, posting via an official social media account, or acting
52+
as an appointed representative at an online or offline event. Representation of
53+
a project may be further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team at apps at elide dot cloud. All
59+
complaints will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an incident.
62+
Further details of specific enforcement policies may be posted separately.
63+
64+
Project maintainers who do not follow or enforce the Code of Conduct in good
65+
faith may face temporary or permanent repercussions as determined by other
66+
members of the project's leadership.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72+
73+
[homepage]: https://www.contributor-covenant.org
74+
75+
For answers to common questions about this code of conduct, see
76+
https://www.contributor-covenant.org/faq

.github/CONTRIBUTORS.md

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
## Elide Project Contributors
2+
3+
This file lists the Elide project contributors. A contributor is someone who has contributed code in any substantive
4+
(non-trivial) capacity to the project, but is not necessarily considered a project author.
5+
6+
### Sam Gammon (@sgammon)
7+
8+
Sam is the original author of Elide and the primary maintainer. He is the code-owner by default unless otherwise
9+
specified. All administrative rights have been delegated to second parties.
10+
11+
### Dario Valdespino (@darvld)
12+
13+
Dario is a core contributor and maintainer of Elide. He is the code-owner and author of the Express JS intrinsics and
14+
the serving engine.
15+
16+
### Damien O'Hara (@mfwgenerics)
17+
18+
Damien is a contributor to Elide and additionally the author of several upstream components (Kapshot, Koala, etc.). He
19+
has also helped with extensive code review and thought partnership in the design of Elide.
20+
21+
### Sebastian Schuberth (@sschuberth)
22+
23+
Sebastian is a contributor to Elide.

.github/GOVERNANCE.md

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Elide Project Governance
2+
3+
**The Elide project is an open source software framework and runtime.** It is supported in part by [Elide][1] the
4+
company, which is known formally as _Elide Technologies, Inc._, a registered Delaware Limited Liability Company. Elide
5+
is also supported by contributions from independent engineers all over the world.
6+
7+
Elide is a community project, and we welcome new contributors. We are committed to fostering a welcoming environment.
8+
We expect contributors to follow the [Contributor Covenant Code of Conduct][2] when discussing the project in any forum.
9+
10+
## Project Leadership
11+
12+
The Elide project is led by a core team of authors. The current authorship includes:
13+
14+
- **Sam Gammon (@sgammon)**: Primary author and maintainer of Elide. Code-owner by default unless otherwise noted.
15+
- **Dario Valdespino (@darvld)**: Core contributor and maintainer of Elide. Code-owner and author of the Express JS
16+
intrinsics and the serving engine.
17+
18+
## Process and Governance
19+
20+
Most design and development discussion happens via [GitHub Discussions][3] in an open manner where anybody can join in.
21+
Proposals typically form in that area and move to a place of consensus before any implementation work begins.
22+
23+
Once a proposal has been made and a consensus has been reached, the core team will work with the author(s) to determine
24+
the best path forward. This may include the author(s) implementing the proposal, or it may fall to the core team to
25+
implement the proposal.
26+
27+
### Code review
28+
29+
During the development process, code review is done via GitHub pull requests. The core team reviews and merges all pull
30+
requests. Contributors may opt to keep their pull requests as drafts until such time as they are ready for review.
31+
32+
### Developer Certificate of Origin (DCO)
33+
34+
Elide requires that all contributors **sign their commits** with a valid cryptographic key registered to their GitHub
35+
account and email address. **All commits** must also carry a `Signed-off-by` tag in order to be considered for merge.
36+
This tag indicates that the contributor has read and agreed to the [Developer Certificate of Origin (DCO)][4].
37+
38+
### Contributor License Agreement (CLA)
39+
40+
Elide requires that all contributors agree to the terms of the [Elide Contributor License Agreement (CLA)][5]. This
41+
agreement clarifies intellectual property rights with regard to the Elide Framework and Runtime. It does not change your
42+
rights to use your own contributions for any other purpose.
43+
44+
[1]: https://elide.dev
45+
[2]: ./CODE_OF_CONDUCT.md
46+
[3]: https://github.com/orgs/elide-dev/discussions
47+
[4]: ./DCO.md
48+
[5]: ./CLA.md

.github/SECURITY.md

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# Security Policy: Elide Project
2+
3+
> Version: `1.0`
4+
5+
The Elide project and team take security very seriously; a big point of Elide's existence is a lack of isolation in
6+
other runtimes.
7+
8+
Security issues are addressed promptly, and we continuously enhance project security where at all possible.
9+
10+
## Supported Versions
11+
12+
The Elide project is still early, but we intend to support the latest release and immediate past release.
13+
Once the project hits a level of stability suitable for a `1.0` version we will update this document and issue an
14+
LTS release.
15+
16+
**Current version support matrix:**
17+
18+
| Version | Supported |
19+
| --------------- | ------------------------------------------- |
20+
| `v3-alpha4-*` | :white_check_mark: |
21+
| `v3-alpha3-*` | :white_check_mark: (Immediate past release) |
22+
| `v2` and before | :x: No support (ancient) |
23+
24+
## Reporting a Vulnerability
25+
26+
**We use GitHub issues to track vulnerabilities.** [Click here][9] to report a new issue.
27+
If you need to report a vulnerability privately, please use the email address on our main GitHub organization page
28+
(`apps` at `elide` dot `cloud`).
29+
30+
If you need to provide secure information or your report needs to be encrypted, please use our PGP key, as listed on
31+
public key servers at the same email address.
32+
33+
The Elide team will respond to vulnerabilities promptly. We will work with you to understand the scope of the issue and
34+
confirm the vulnerability.
35+
36+
Once confirmed, we will work to address the issue and release a patch as soon as possible, including backporting to the
37+
latest release and immediate past release.
38+
39+
Other (older) releases may receive backports on a case-by-case basis.
40+
41+
## Security Advisories
42+
43+
We will publish security advisories for any vulnerabilities that we address.
44+
45+
These advisories will be published on our GitHub organization page and will be linked to from this document;
46+
the main `elide` repository will also have a link to this document.
47+
48+
**At this time, no security advisories have been announced.**
49+
50+
## Supply Chain Security
51+
52+
Elide leverages [dependency verification][1] and [dependency locking][2] for all supported tooling; in any case, we
53+
select the minimum set of high-quality dependencies necessary to deliver a feature.
54+
55+
In most cases, Elide only depends on standard libraries and language-endorsed extensions.
56+
57+
### Dependency Verification and Locking
58+
59+
Elide employs Gradle for dependency assurance, with `SHA-256` and `PGP` used for hashing and signing.
60+
61+
### Attestations and Signing
62+
63+
Elide ships with [SLSA attestations][3] for all modules, and embeds an SBOM with each binary artifact.
64+
Library releases are signed with PGP and published to Maven Central; all releases are additionally registered with
65+
[Sigstore][4].
66+
67+
Container image bases carry SLSA attestations and are registered with Sigstore.
68+
69+
## Continuous Updates
70+
71+
Elide pins to the latest versions of all dependencies, by default, modulo (1) known vulnerabilities and (2) support for
72+
current features. Every attempt is made to use only stable dependencies; sometimes this is not possible with the speed
73+
at which development occurs on Elide.
74+
75+
Elide employs Dependabot and Renovate for automated dependency updates, and we continuously monitor for and adopt new
76+
releases of all software Elide depends on.
77+
78+
## Upstream Policies
79+
80+
Elide is a meta-framework and runtime.
81+
82+
When used as a **library or framework**, the bulk of Elide's functionality is implemented by [Micronaut][5] and
83+
[Netty][6]. When used as a **runtime**, Elide is built on top of [GraalVM][10].
84+
85+
You can find their security policies [here][7] (Micronaut), [here][8] (Netty), and [here][11] (GraalVM), respectively.
86+
87+
[1]: https://docs.gradle.org/current/userguide/dependency_verification.html
88+
[2]: https://docs.gradle.org/current/userguide/dependency_locking.html
89+
[3]: https://slsa.dev/
90+
[4]: https://www.sigstore.dev/
91+
[5]: https://micronaut.io/
92+
[6]: https://netty.io/
93+
[7]: https://github.com/micronaut-projects/micronaut-core/security/policy
94+
[8]: https://github.com/netty/netty/security/policy
95+
[9]: https://github.com/elide-dev/elide/issues/new
96+
[10]: https://www.graalvm.org/
97+
[11]: https://github.com/oracle/graal/security/policy

.github/codecov.yml

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
codecov:
2+
require_ci_to_pass: true
3+
bot: "elidebot"
4+
notify:
5+
wait_for_ci: true
6+
7+
coverage:
8+
precision: 2
9+
round: down
10+
range: "25...40"
11+
status:
12+
project:
13+
default:
14+
informational: true
15+
patch: off
16+
17+
comment:
18+
layout: "reach,diff,flags,files,footer"
19+
behavior: default
20+
require_changes: false
21+
22+
parsers:
23+
javascript:
24+
enable_partials: yes
25+
gcov:
26+
branch_detection:
27+
conditional: yes
28+
loop: yes
29+
method: no
30+
macro: no
31+
32+
github_checks:
33+
annotations: true
34+
35+
ignore:
36+
- "samples"
37+
- "tools/processor"
38+
- "tools/substrate/injekt"
39+
- "tools/substrate/sekret"
40+
- "tools/substrate/interakt"
41+
- "tools/substrate/compiler-util"
42+
- "tools/plugin/gradle-plugin"
43+
- "packages/proto/proto-flatbuffers"
44+
- "packages/graalvm/src/main/kotlin/elide/runtime/feature"

.github/dependency-review-config.yml

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#
2+
# Copyright (c) 2024 Elide Technologies, Inc.
3+
#
4+
# Licensed under the MIT license (the "License"); you may not use this file except in compliance
5+
# with the License. You may obtain a copy of the License at
6+
#
7+
# https://opensource.org/license/mit/
8+
#
9+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
10+
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11+
# License for the specific language governing permissions and limitations under the License.
12+
#
13+
14+
license-check: true
15+
vulnerability-check: true
16+
fail-on-severity: "high"
17+
18+
allow-ghsas:
19+
## Allow `node-fetch`, because it is unused in actual outputs made by this library.
20+
- "GHSA-r683-j2x4-v87g"
21+
- "GHSA-w7rc-rwvf-8q5r"
22+
23+
## Allow `jszip`, because we do not use it in the browser.
24+
- "GHSA-jg8v-48h5-wgxg"

.github/license-header.txt

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Copyright (c) 2024 Elide Technologies, Inc.
3+
*
4+
* Licensed under the MIT license (the "License"); you may not use this file except in compliance
5+
* with the License. You may obtain a copy of the License at
6+
*
7+
* https://opensource.org/license/mit/
8+
*
9+
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
10+
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11+
* License for the specific language governing permissions and limitations under the License.
12+
*/

.github/pr-badge.yml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#
2+
# Copyright (c) 2024 Elide Technologies, Inc.
3+
#
4+
# Licensed under the MIT license (the "License"); you may not use this file except in compliance
5+
# with the License. You may obtain a copy of the License at
6+
#
7+
# https://opensource.org/license/mit/
8+
#
9+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
10+
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11+
# License for the specific language governing permissions and limitations under the License.
12+
#
13+
14+
## Draft/ready for review
15+
- label: "Status"
16+
message: "Draft"
17+
color: "gray"
18+
when: "$isDraft"
19+
- label: "Status"
20+
message: "Ready for review"
21+
color: "green"
22+
when: "$isDraft === false"

.github/workflows/check.dependency-review.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ jobs:
1919
- name: "Setup: Checkout"
2020
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
2121
with:
22-
persist-credentials: false
22+
persist-credentials: false
2323
- name: "Checks: Dependency Review"
2424
uses: actions/dependency-review-action@9129d7d40b8c12c1ed0f60400d00c92d437adcce # v4.1.3

.github/workflows/check.gradle-wrapper.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ jobs:
1919
- name: "Setup: Checkout"
2020
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
2121
with:
22-
persist-credentials: false
22+
persist-credentials: false
2323
- name: "Check: Gradle Wrappers"
2424
uses: gradle/wrapper-validation-action@699bb18358f12c5b78b37bb0111d3a0e2276e0e2 # v2.1.1

0 commit comments

Comments
 (0)