Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC git-sdk requirements #455

Closed
wants to merge 149 commits into from
Closed

Conversation

samuelstroschein
Copy link
Member

@samuelstroschein samuelstroschein commented Mar 20, 2023

Rendered

Give feedback by reviewing the RFC as file link

@opral opral deleted a comment from changeset-bot bot Mar 20, 2023
@opral opral deleted a comment from render bot Mar 20, 2023
@changeset-bot
Copy link

changeset-bot bot commented Mar 20, 2023

🦋 Changeset detected

Latest commit: b1e354f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@inlang/core Minor
@inlang/website Minor
@inlang/ide-extension Minor
@inlang/git-sdk Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@samuelstroschein
Copy link
Member Author

@nikitavoloboev This RFC is work in progress. I intend that we complete the RFC together with your finding and evaluation of isomorphic git vs libgit2.

We are facing high ambiguity. Thus, I put the most emphasis on iteration speed and left some notes on what answers I would try to seek from a comparison of a JS vs WebAssembly implementation.

@samuelstroschein
Copy link
Member Author

From https://news.ycombinator.com/item?id=35288059.

Apparently, EMScripten is unmaintained. If true, this should play a role in our decision process.

CleanShot 2023-03-24 at 18 30 44@2x

NiklasBuchfink and others added 10 commits March 27, 2023 16:40
* refactor: use minimum config schema, remove env from lint

* chore: format fix

* refactor: only expose 2 query functions

* chore: add changeset

* chore: remove unnecessary optional chaining

* refactor: don't return undefined in lint

#453 (comment)

* refactor: immutable lint
* fix: linting errors

* chore: add changeset
* refactor: remove setup and teardown

* work in progress commit

* refactor: remove the concept of passing booleans to the lint level

* fix: propagation of context

Context can't be passed around from nodes to childs without adjusting the target and reference nodes.

* chore: simplify type

The generic output was unused.

* test: slightly more realistic test

* refactor: remove context

Redundant concept.

* init alternative

* refactor: define setup function in `LintRule`

#459 (comment)

* clean up

* refactor: remove rule collections 😢

We should wait for user demand to nail a solution.

* update readme

* refactor: remove unusued utilities

The `utilities` lib is intended for external usage. Furthermore, most utilties were not used.

* add: typesafety to createLintRule settings

* chore: fix type imports

* chore: fix typescript compilation

* chore: remove test utilities export

The utilities like `createMessage` should likely be part of `ast`. Exposing them only for lint seems a short term solution. But, if we expose those utiltites in lint now, we can't remove them in the future. Thus, remove for now.

* refactor: return errors to enable apps to handle errors

Encountered numerous problems because `lint` implicitly catches errors. That behavior makes sense. Just because one rule is throwing, the linting process shouldn't abort.

However, debugging became harder and consuming apps like the editor or CLI will never now if a linting process failed.

* fix typo

Co-authored-by: Hofer Ivan <ivan.hofer@outlook.com>

* fix typo

Co-authored-by: Hofer Ivan <ivan.hofer@outlook.com>

* show example lint rule with settings

* chore: remove todo

* fix: only pass message to a node

* chore: add comment to remove node types

* refactor: narrow settings type

* refactor: createLintRule only uses args

#459 (comment)

* chore: don't use node globals

* refactor: remove node dependency entirely

node fs imports don't work in core

* refactor: remove node dependency entirely

node fs imports don't work in core

* refactor: remove node dependency entirely

node fs imports don't work in core

* fix: pass correct args

* Create .changeset/hungry-carpets-build.md

---------

Co-authored-by: Hofer Ivan <ivan.hofer@outlook.com>
@samuelstroschein
Copy link
Member Author

@samuelstroschein samuelstroschein deleted the rfc-git-sdk-requirements branch April 12, 2023 09:33
@samuelstroschein samuelstroschein mentioned this pull request Dec 1, 2023
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants