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

ARC transilable async/promise based IO #479

Merged
merged 30 commits into from
Dec 4, 2024
Merged

ARC transilable async/promise based IO #479

merged 30 commits into from
Dec 4, 2024

Conversation

HLWeil
Copy link
Member

@HLWeil HLWeil commented Dec 3, 2024

  • Added CrossAsync type which acts as an interface for Async in DotNET/Python and Promise in Javascript
  • Added base layer of crossAsync IO helper functions
    • Python functions are put directly into the F# source code using Fables emit logic
    • Javascript functions are put into a js source file and called using Fables import logic
      • This is a future to-do, but too much of a time-eater now and the core functionality is stable enough IMO
  • Added layer of crossAsync Contract handling functions
  • Added top-level crossAsync ARC IO functions
  • Added top-level synchronous ARC IO functions, only for dotNET and Python as Javascript is difficult to synchronize

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No pypackage reference for femto?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're not using femot at all. Would be a to-do for the future

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Femto is for the people installing ARCtrl as it installs nuget and native dependencies.

We did it for the npm dependencies so i thought i make you aware of this

@@ -1,31 +1,52 @@
namespace ARCtrl
namespace ARCtrl
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

duplicate namespace

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So we keep one minimal arc in version control for testing?

Could we not write it first and therefore test correct writing too?

Then we could ommit the ARC from version control

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some brainstorming: Maybe git-submodul the example arc from gitlab? So we can ensure being compatible with the example?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe git-submodul the example arc from gitlab?

This is what we do in the integration tests for arc validation packages, see submodule here, action that pulls submodules in CI here and tests if submodules are there here
(obviously, the test fixtures must be translated into pyxpecto, i don't know if it has that functionality)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, using the Prototype ARC would be the best solution.

Only using the ARCs written with the library might leave a blind spot for this case.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this rick roll?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually not! Now i am surprised :D

@HLWeil HLWeil merged commit 13842ba into main Dec 4, 2024
2 checks passed
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.

3 participants