Skip to content

Commit e0d0cc0

Browse files
authored
Merge pull request #353 from Vineflower/develop/1.10.0
Release Vineflower 1.10.0
2 parents 3482e13 + 1882f77 commit e0d0cc0

File tree

788 files changed

+47696
-13889
lines changed

Some content is hidden

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

788 files changed

+47696
-13889
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help improve Vineflower
4+
title: ''
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
## Vineflower version
11+
Replace this text with the version of Vineflower that you are using.
12+
13+
## Describe the bug
14+
Replace this text with a clear and concise description of what the bug is.
15+
16+
## Additional information
17+
Replace this text with any stacktraces, screenshots, example code, or class files (Only if you have the rights to distribute them!) here.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea to improve Vineflower
4+
title: ''
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
## Is your feature request related to a problem? Please describe.
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
## Describe the solution you'd like
14+
A clear and concise description of what you want to happen.
15+
16+
## Additional context
17+
Add any other context or screenshots about the feature request here.

.github/workflows/build.yml

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,29 @@ jobs:
44
build:
55
strategy:
66
matrix:
7-
java: [8, 11, 17]
8-
runs-on: ubuntu-20.04
7+
java: [11, 17, 19]
8+
runs-on: ubuntu-22.04
99
container:
10-
image: openjdk:${{ matrix.java }}-jdk
10+
image: eclipse-temurin:${{ matrix.java }}
1111
options: --user root
1212
steps:
13-
- uses: actions/checkout@v1
13+
- uses: actions/checkout@v3
1414
- uses: gradle/wrapper-validation-action@v1
15-
- run: ./gradlew build --stacktrace
15+
- name: Build with Gradle
16+
run: |
17+
chmod +x gradlew
18+
./gradlew build --stacktrace
1619
- name: Archive test results
1720
if: "${{ always() }}"
18-
uses: actions/upload-artifact@v2
21+
uses: actions/upload-artifact@v3
1922
with:
2023
name: "test-results-java${{ matrix.java }}"
2124
path: |
2225
build/reports/
23-
*/build/reports/
26+
plugins/*/build/reports/
2427
build/test-results/**/*.xml
25-
- name: Codecov
26-
uses: codecov/[email protected]
2728
publish-test-results:
28-
runs-on: ubuntu-latest
29+
runs-on: ubuntu-22.04
2930
needs: [build]
3031
permissions:
3132
issues: write
@@ -34,7 +35,7 @@ jobs:
3435
if: success() || failure()
3536
steps:
3637
- name: Download Artifacts
37-
uses: actions/download-artifact@v2
38+
uses: actions/download-artifact@v3
3839
with:
3940
path: artifacts
4041
- name: Publish Test Results

.github/workflows/release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ on:
66
- '*'
77
jobs:
88
build:
9-
runs-on: ubuntu-20.04
9+
runs-on: ubuntu-22.04
1010
container:
11-
image: openjdk:15-jdk
11+
image: eclipse-temurin:17
1212
options: --user root
1313
steps:
14-
- uses: actions/checkout@v1
14+
- uses: actions/checkout@v3
1515
- uses: gradle/wrapper-validation-action@v1
1616
- run: ./gradlew build publish publishToSonatype closeAndReleaseSonatypeStagingRepository -x test --stacktrace
1717
env:

.github/workflows/snapshot.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@ on: [push, pull_request]
33
jobs:
44
publish:
55
if: ${{ github.repository_owner == 'Vineflower' && contains(github.ref_name, 'develop') }}
6-
runs-on: ubuntu-20.04
6+
runs-on: ubuntu-22.04
77
container:
8-
image: openjdk:15-jdk
8+
image: eclipse-temurin:17
99
options: --user root
1010
steps:
11-
- uses: actions/checkout@v1
11+
- uses: actions/checkout@v3
1212
- uses: gradle/wrapper-validation-action@v1
1313
- run: ./gradlew publish --stacktrace
1414
env:
1515
STATUS: snapshot
1616
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
1717
SIGNING_KEY_PASSPHRASE: ${{ secrets.SIGNING_KEY_PASSPHRASE }}
1818
SONATYPE_USER: ${{ secrets.SONATYPE_USER }}
19-
SONATYPE_PASS: ${{ secrets.SONATYPE_PASS }}
19+
SONATYPE_PASS: ${{ secrets.SONATYPE_PASS }}

.gitignore

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
1-
/.idea/
1+
## Gradle
22
/.gradle/
33
/buildSrc/.gradle/
44
/build/
55
/buildSrc/build/
6+
7+
## IDEA
8+
/.idea/
69
/out/
10+
11+
## Eclipse
12+
.settings/
13+
.classpath
14+
.project
15+
bin
16+
17+
## VSCode
18+
.vscode
19+
20+
## Common
721
/testData/classes/java*/
822
/testData/classes/jasm/
923
/testData/classes/groovy/
1024
/testData/classes/kt/
11-
/testData/classes/scala/
12-
bin
25+
/testData/classes/scala/

CONTRIBUTING.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ Welcome! Thank you for taking an interest in contributing to Vineflower.
55
* The [ARCHITECTURE.md](./ARCHITECTURE.md) file in the repository contains technical information on how Vineflower is structured. Reading that will greatly help with familiarizing yourself with the codebase and with PR development.
66
* It's highly recommended to socialize your changes first through our [social platforms](https://github.com/Vineflower) before making a pull request!
77
* Check out the issue tracker and roadmap! You can find good things to contribute there.
8+
* Make sure your pull request is based off of the latest development branch in the repository. The main branch is a stable snapshot, representing the latest released version of the decompiler.
89

910
## Good things to contribute
11+
* Fixes to bugs present in the decompiler.
1012
* Improvements to the readability of the decompiled code.
1113
* New feature support for the decompiler.
1214
* Optimization, to make it run faster and use fewer resources.
@@ -17,7 +19,7 @@ Welcome! Thank you for taking an interest in contributing to Vineflower.
1719
* More technical issues are usually found in the [Test class](https://github.com/Vineflower/vineflower/blob/master/test/org/jetbrains/java/decompiler/SingleClassesTest.java) where individual wrong tests are described with their errors.
1820

1921
## Code Style and guidelines
20-
While the code inherited from FernFlower varies with its style and syntax, it's expected that pull requests stick to our established code style.
22+
While the code inherited from Fernflower varies with its style and syntax, it's expected that pull requests stick to our established code style.
2123
* We use UpperCamelCase for class names, camelCase for method, variable, local variable, and field names, and UPPER_SNAKE_CASE for static final fields. Please always qualify instance fields with a `this.` qualifier.
2224
* Please try to keep pull requests small and self-contained! It makes reviewing and maintaining the patch much easier.
2325
* Statements should always have braces around them, even if they are only 1 line in their length.
@@ -30,12 +32,12 @@ While the code inherited from FernFlower varies with its style and syntax, it's
3032
* When contributing, you should add new tests that cover the area of code that you are targeting. Having more tests makes the decompiler more robust, so it's always appreciated.
3133

3234
## Resources
33-
FernFlower is a very complex and involved bit of software, and there's a lot going on in a rather questionable structure. Naturally, understanding it all is a challenge so various resources are provided here to aid with the process.
35+
Fernflower is a very complex and involved bit of software, and there's a lot going on in a rather questionable structure. Naturally, understanding it all is a challenge so various resources are provided here to aid with the process.
3436
* Knowing how java bytecode works is essential. You can find the detailed description of all the opcodes [here](https://docs.oracle.com/javase/specs/jvms/se16/html/jvms-6.html#jvms-6.5) or a simple list of them [here.](https://en.wikipedia.org/wiki/Java_bytecode_instruction_listings)
35-
* Graph theory comes up frequently in the statement analysis portion of FernFlower. It's useful knowing about [Basic Blocks](https://en.wikipedia.org/wiki/Basic_block), [Control Flow Graphs](https://en.wikipedia.org/wiki/Control-flow_graph), and [Dominators.](https://en.wikipedia.org/wiki/Dominator_(graph_theory))
37+
* Graph theory comes up frequently in the statement analysis portion of Fernflower. It's useful knowing about [Basic Blocks](https://en.wikipedia.org/wiki/Basic_block), [Control Flow Graphs](https://en.wikipedia.org/wiki/Control-flow_graph), and [Dominators.](https://en.wikipedia.org/wiki/Dominator_(graph_theory))
3638
* [Static Single Assignment Form](https://en.wikipedia.org/wiki/Static_single_assignment_form) is also used widely to track variables and their versions within the decompilation stages.
3739
* The [Java Language Specification](https://docs.oracle.com/javase/specs/jls/se16/html/), while dense, is a good source of information regarding language features.
38-
* The [ARCHITECTURE.md](./ARCHITECTURE.md) file in the repository contains important information about how FernFlower is structured.
40+
* The [ARCHITECTURE.md](./ARCHITECTURE.md) file in the repository contains important information about how Fernflower is structured.
3941
* The [social platforms](https://github.com/Vineflower) contains many people who have worked with the code before, so any remaining questions are best asked there.
4042

4143
## License

0 commit comments

Comments
 (0)