Skip to content

Commit

Permalink
master
Browse files Browse the repository at this point in the history
  • Loading branch information
hmdne committed Mar 23, 2022
1 parent bd8115b commit 373a6ea
Show file tree
Hide file tree
Showing 1,076 changed files with 189,556 additions and 66,976 deletions.
54 changes: 54 additions & 0 deletions .codeclimate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
version: "2"

checks:
argument-count:
config:
threshold: 4
complex-logic:
config:
threshold: 10
file-lines:
config:
threshold: 1000
method-complexity:
config:
threshold: 5
method-count:
config:
threshold: 100
method-lines:
config:
threshold: 30
nested-control-flow:
config:
threshold: 4
return-statements:
config:
threshold: 4
# similar-code:
# config:
# threshold: # language-specific defaults. an override will affect all languages.
# identical-code:
# config:
# threshold: # language-specific defaults. an override will affect all languages.

plugins:
rubocop:
enabled: true
channel: rubocop-0-53

exclude_patterns:
- "benchmark/*"
- "benchmark-ips/*"
- "build/*"
- "coverage/*"
- "docs/*"
- "examples/*"
- "tasks/*"
- "spec/*"
- "test/*"
- "vendored-minitest/*"
- "**/node_modules/*"
- stdlib/nodejs/js-yaml-3-6-1.js
- lib/opal/source_map/vlq.rb
- lib/opal/cli_runners/source-map-support*.js
6 changes: 6 additions & 0 deletions .eslintrc.await.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = {
"extends": "./.eslintrc.js",
"parserOptions": {
"ecmaVersion": 8
},
};
35 changes: 35 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
module.exports = {
"env": {
"browser": true,
"node": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 3
},
"rules": {
"no-unused-vars": ["error", {
"varsIgnorePattern": "(\$(\$|\$\$|yield|post_args|[a-z])|self)",
"argsIgnorePattern": "(\$(\$|\$\$|yield|post_args|[a-z])|self)",
}],
"no-extra-semi": "off",
"no-empty": "off",
"no-unreachable": "off",
"no-cond-assign": "off",
"no-prototype-builtins": "off",
"no-constant-condition": ["error", { "checkLoops": false }],
"no-useless-escape": "off",
"no-fallthrough": ["error", { "commentPattern": "raise|no-break" }],
"no-regex-spaces": "off",
"no-control-regex": "off",
},
"globals": {
"Opal": "readonly",
"DataView": "readonly",
"ArrayBuffer": "readonly",
"globalThis": "readonly",
"Uint8Array": "readonly",
"Promise": "readonly",
"WeakRef": "readonly",
}
};
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
UNRELEASED.md merge=union
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
open_collective: opal
47 changes: 47 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
name: Bug report
about: Create a report to help us improve
title: 'Bug: '
labels: bug
assignees: ''

---

**Describe the bug**
<!-- A clear and concise description of what the bug is.
Please clarify if it's a missing feature. -->

Opal version: …


**To Reproduce**

<!--
Steps to reproduce the behavior.
You can contrasting it to Ruby's behavior:
```
$ opal -v -e "puts 123"
123
```
```
$ruby -v -e "puts 123"
```
or show an error in the compiled code:
```
$ opal -v -e "puts 123" -cEO
/* Generated by Opal 1.1.1 */
(function(Opal) {
var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$;
Opal.add_stubs(['$puts']);
return self.$puts(123)
})(Opal);
```
-->
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: 'Feature: '
labels: feature
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.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
105 changes: 105 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
name: build

on:
push:
branches:
- master
- "*-stable"
- "*/ci-check"
pull_request: {}

jobs:
rake:
name: ${{ matrix.combo.name || matrix.combo.ruby }}
strategy:
fail-fast: false
matrix:
combo:
- name: mspec-nodejs
ruby: '3.0'
command: bin/rake mspec_nodejs
- name: mspec-chrome
ruby: '3.0'
command: bin/rake mspec_chrome
- name: minitest
ruby: '3.0'
command: bin/rake minitest
- name: minitest-strict-mode
ruby: '3.0'
command: bin/rake minitest
strict: 'true'
- name: head-ruby
ruby: head
permissive: true
- name: current-ruby
ruby: 3.1
- name: previous-ruby
ruby: '3.0'
- name: older-ruby
ruby: 2.7
- name: near-eol-ruby
ruby: 2.6
- name: smoke-test
ruby: '3.0'
command: bin/rake smoke_test
- name: windows
# These two fail because of broken stacktraces on windows: minitest_node_nodejs mspec_nodejs
command: bundle exec rake rspec minitest_nodejs
ruby: '3.0'
os: windows-latest
- name: lint
command: bin/rake lint
ruby: '3.0'
- name: timezone
ruby: '3.0'
- name: performance
ruby: '3.0'
permissive: true
fetchdepth: '0'
command: bin/rake performance:compare
os: ryzen

# Currently failing:
# - ruby: truffleruby
# - ruby: jruby

runs-on: ${{ matrix.combo.os || 'ubuntu-latest' }}
continue-on-error: ${{ matrix.combo.permissive || false }}
steps:
- uses: actions/checkout@v2
with:
fetch-depth: ${{ fromJSON(matrix.combo.fetchdepth || '1') }}
- if: ${{ matrix.combo.os != 'ryzen' }}
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.combo.ruby }}
bundler-cache: false
- run: ruby bin/git-submodule-fast-install
- run: bundle lock
- uses: actions/cache@v2
with:
path: ./vendor/bundle
key: ${{ runner.os }}-${{ matrix.combo.ruby }}-gem-${{ github.ref }}-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.combo.ruby }}-gem-${{ github.ref }}
${{ runner.os }}-${{ matrix.combo.ruby }}-gem-master
${{ runner.os }}-${{ matrix.combo.ruby }}-gem-
- uses: actions/cache@v2
with:
path: ./node_modules
key: ${{ runner.os }}-npm-${{ github.ref }}-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-npm-${{ github.ref }}
${{ runner.os }}-npm-master
${{ runner.os }}-npm-
- run: yarn install
- name: bundle install
run: |
bundle config path $PWD/vendor/bundle
bundle install --jobs 4 --retry 3
bundle clean
- name: set environment variables
if: ${{ matrix.combo.strict == 'true' }}
run: |
echo "USE_STRICT=true" >> $GITHUB_ENV
- run: ${{ matrix.combo.command || 'bin/rake rspec' }}
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,21 @@
.DS_Store
*.gem
.yardoc
.bundle
Gemfile.lock
Gemfile.local
build/
/.github_access_token
/cdn
/node_modules
/gh-pages
/tmp
.ruby-gemset
.ruby-version
.rvmrc
.rspec-local
/coverage

# Ignore old submodules, useful when switching branches
spec/corelib
spec/rubyspec
10 changes: 10 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[submodule "spec/ruby"]
path = spec/ruby
url = https://github.com/ruby/spec.git
[submodule "test/cruby"]
path = test/cruby
url = https://github.com/ruby/ruby.git
branch = ruby_2_2
[submodule "spec/mspec"]
path = spec/mspec
url = https://github.com/ruby/mspec.git
19 changes: 19 additions & 0 deletions .inch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# files:
# # define files included in the analysis (defaults to ["{app,lib}/**/*.rb"])
# included:
# - plugins/**/*.rb
# # define files excluded from the analysis (defaults to [])
# excluded:
# # you can use file paths
# - plugins/vendor/sparkr/sparkr.rb
# # or globs
# - plugins/vendor/**/*.rb
# # or regular expressions
# - !ruby/regexp /vendor/


files:
included:
- lib/**/*.rb
excluded:
- lib/opal/parser/grammar.rb
35 changes: 35 additions & 0 deletions .overcommit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Use this file to configure the Overcommit hooks you wish to use. This will
# extend the default configuration defined in:
# https://github.com/sds/overcommit/blob/master/config/default.yml
#
# At the topmost level of this YAML file is a key representing type of hook
# being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
# customize each hook, such as whether to only run it on certain files (via
# `include`), whether to only display output if it fails (via `quiet`), etc.
#
# For a complete list of hooks, see:
# https://github.com/sds/overcommit/tree/master/lib/overcommit/hook
#
# For a complete list of options that you can use to customize hooks, see:
# https://github.com/sds/overcommit#configuration
#
# Uncomment the following lines to make the configuration take effect.

gemfile: Gemfile

PreCommit:
RuboCop:
enabled: true
on_warn: fail # Treat all warnings as failures

TrailingWhitespace:
enabled: true
# exclude:
# - '**/db/structure.sql' # Ignore trailing whitespace in generated files

#PostCheckout:
# ALL: # Special hook name that customizes all hooks of this type
# quiet: true # Change all post-checkout hooks to only display output on failure
#
# IndexTags:
# enabled: true # Generate a tags file with `ctags` each time HEAD changes
2 changes: 2 additions & 0 deletions .rspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--color
--require lib/spec_helper
Loading

0 comments on commit 373a6ea

Please sign in to comment.