Skip to content

Commit

Permalink
Merge pull request #43 from sillydan1/dev
Browse files Browse the repository at this point in the history
Use the graphedit-protobuf package instead of manual copy-pasting (and docs update)
  • Loading branch information
sillydan1 authored Mar 2, 2024
2 parents f9d27bb + e160acb commit b8f18b8
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 218 deletions.
11 changes: 7 additions & 4 deletions CONTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# CONTRIBUTION
Contributions are welcome! We are happy to help you get started, so don't hesitate to [ask](https://github.com/sillydan1/graphedit/discussions/new?category=q-a) for help if you are unsure about anything.

## Git
Commits should strive to follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) format (merge commits nonwithstanding). Idealy each commit should at least be compileable and runnable as well, but with refactors, it can be understandable if this is not possible. A commit should represent a meaningful change, so "wip" commits are discouraged, and we encourage to squash and/or rename commits as needed.
Expand All @@ -10,13 +11,15 @@ New PRs based on `main` should target `main`. If they are based on `dev`, they s

### Branching Architecture
`main` is the primary release branch. All commits on `main` should be compileable, executable, bug-free (as much as possible) and "release ready".

`dev` is the staging branch. All commits on `dev` should be compileable and executable. Bugs are allowed and things are allowed to break here.
Use `feat/some-feature` for new features and `fix/some-fix` for new bugfixes. If you cant think of a good name for your branch, just give it some name to begin with, we can always rename the branch :-).

When creating new branches/forks, please base on either `main` or `dev`, note however that `dev` is rapidly changing so we recommend to fork from `main` by default.
Use `feat/some-feature` for new features and `fix/some-fix` for new bugfixes. If you cant think of a good name for your branch, just give it some name to begin with, we can always rename the branch later 😁

When creating new branches/forks, please base on either `main` or `dev`, note however that `dev` is rapidly changing so we recommend to fork from `main` by default, but use your best judgement.

## Code Quality
Generally, try to follow the style that is already present and try to reuse existing components when appropriate.
Generally, try to follow the style that is already present and try to reuse existing components when appropriate. If you are unsure about anything, don't hesitate to [ask](https://github.com/sillydan1/graphedit/discussions/new?category=q-a) for help.

### Documentation
Ideally, any `public` thing should have a javadoc comment.
Ideally, any `public` thing should have a javadoc comment and the `javadoc` task should not produce any warnings.
61 changes: 36 additions & 25 deletions PROGRESS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,39 @@
# Progress
Current progress and future plans.
There is also a [github project](https://github.com/users/sillydan1/projects/6) for this, and I am debating which solution I should use / prefer. For now, both exist

## Planned / In Progress
### Release `v1.5.0` (Plugin infrastructure)
This milestone focuses on cleanup and plugin infrastructure. The goal is to make the plugin ecosystem more robust and easier to use and extend.
- [ ] Purge github issues
- [ ] Undo system overhaul (make it diff-based)
- [ ] Wrapper for the `addListener` / `removeListener` boilerplate pattern
- [ ] Language bindings
- [ ] Python bindings
- [ ] Lua bindings [LuaJava](https://github.com/gudzpoz/luajava/tree/main).
- [ ] Plugin Repository with some exploration / browsing built in
- [ ] `std` sidepanel for plugin browsing

## Backlog
These are the ideas that are not yet planned, but are on the radar.
- [ ] TIOA syntax
- [ ] Diff view
- [ ] TA syntax
- [ ] CD (needs a pre-release for prototyping purposes)
- [ ] flathub
- [ ] Web based view
- [ ] CodeArea tree highlighter implementation
- [ ] Trace-traverser & specification
- [ ] Plan for git integration
- [ ] Planarity Embedding / autoformatting
- [ ] DAP like specification
- [ ] Protobuf specification
- [ ] Implement `IDap` / `IDapEngine` interfaces
- [ ] Clean up `DI` usage
- [ ] Create some analysis tools, maybe a dependency graph from where things are added and where they are retrived again.

## Legacy
This is a list of things that have been done. Only here for sentimental reasons.
- [x] Basic graph model implementation
- [x] Serialization / deserialization of the graph model
- [x] Create issue on [jdtls](https://github.com/eclipse/eclipse.jdt.ls) repo about not implementing the [progress](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#progress) feature - it's getting a bit annoying to use
Expand Down Expand Up @@ -127,34 +162,10 @@
- [x] LSP like specification (use docusaurus, or github wiki)
- [x] Protobuf specification (that way, you are language agnostic)
- [x] Implement `ILsp` / `ILspEngine` interfaces
- [ ] Release `v1.4.0`
- [x] Release `v1.4.0`
- [x] HAWK / nttals usability exploration fixes
- [x] Importer / Exporter interfaces
- [x] importer interface & tapaal example
- [x] exporter interface & tapaal example
- [x] Fix TODOs
- [x] Javadocs
- [ ] Release `v1.5.0`
- [ ] Purge github issues
- [ ] CodeArea tree highlighter implementation
- [ ] Trace-traverser & specification
- [ ] Release `v1.6.0`
- [ ] Plan for git integration
- [ ] Diff view
- [ ] Release `v1.7.0`
- [ ] Planarity Embedding
- [ ] Release `v1.8.0`
- [ ] DAP like specification
- [ ] Protobuf specification
- [ ] Implement `IDap` / `IDapEngine` interfaces
- [ ] Release `v1.9.0`
- [ ] Clean up `DI` usage
Create some analysis tools, maybe a dependency graph from where things are added and where they are retrived again.
- [ ] Lua bindings [LuaJava](https://github.com/gudzpoz/luajava/tree/main).
- [ ] Release `v1.10.0`

## Not abandoned, but not planned
- [ ] TIOA syntax
- [ ] TA syntax
- [ ] CD (needs a pre-release for prototyping purposes)
- [ ] flathub
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,15 @@ If you open the project in an editor and the class `BuildConfig` doesn't exist,
Graphedit supports third party plugins. Take a look at the official [template repository](https://github.com/sillydan1/graphedit-plugin-template) as a starting point on creating your own plugin.
Also make sure to take a look at the [javadocs](https://javadoc.graphedit.gtz.dk) page for reference as well. If you want more of an example, take a look at how the [`std`](std/) plugin is structured.

## Contribute 🤝
We welcome all contributions. If you want to contribute, please take a look at the [contribution guidelines](CONTRIBUTION.md) and the [github project](https://github.com/users/sillydan1/projects/6/views/1) to see what needs to be done / is currently being worked on.

## Install
### Linux 🐧
We provide `.deb` and `.rpm` packaging formats directly from the github releases

<!-- #### Flatpak -->
<!-- Flatpak is not possible yet. Not enough github stars (yet) -->
<!-- ```shell -->
<!-- flatpak install sillydan1/graphedit/graphedit -->
<!-- ``` -->
Expand Down
3 changes: 1 addition & 2 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
plugins {
id 'java';
id 'com.github.gmazzo.buildconfig' version '4.2.0';
id 'com.google.protobuf' version '0.9.4';
}

def gitCommitSha = { ->
Expand Down Expand Up @@ -89,7 +88,6 @@ sourceSets {
subprojects {
apply plugin: 'java';
apply plugin: 'com.github.gmazzo.buildconfig';
apply plugin: 'com.google.protobuf';

ext.gitCommitSha = gitCommitSha;
ext.gitCommitShaLong = gitCommitShaLong;
Expand Down Expand Up @@ -117,6 +115,7 @@ subprojects {
implementation group: 'com.beust', name: 'jcommander', version: '1.82';
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.15.0';
implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jdk8', version: '2.15.0';
implementation group: 'dk.gtz.graphedit', name: 'graphedit-protobuf', version: '1.1.0';
implementation group: 'dk.yalibs', name: 'yadi', version: '1.1.0';
implementation group: 'dk.yalibs', name: 'yaerrors', version: '1.0.0';
implementation group: 'dk.yalibs', name: 'yafunc', version: '1.0.0';
Expand Down
16 changes: 0 additions & 16 deletions core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,22 +30,6 @@ ext {
jdkCompileVersion = 17
}

protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.24.0";
}
plugins {
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.60.0';
}
}
generateProtoTasks {
all()*.plugins {
grpc {}
}
}
}

java {
withJavadocJar()
}
Expand Down
17 changes: 0 additions & 17 deletions core/src/main/proto/docs.md

This file was deleted.

154 changes: 0 additions & 154 deletions core/src/main/proto/lsp.proto

This file was deleted.

0 comments on commit b8f18b8

Please sign in to comment.