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

Proposal: Rename "locutus" repository to "core" #810

Closed
2 tasks done
sanity opened this issue Sep 2, 2023 · 7 comments
Closed
2 tasks done

Proposal: Rename "locutus" repository to "core" #810

sanity opened this issue Sep 2, 2023 · 7 comments
Assignees
Labels
A-developer-xp Area: developer experience P-medium Medium priority planned This has been synced to PT for triage

Comments

@sanity
Copy link
Collaborator

sanity commented Sep 2, 2023

Github

Repo structure

├── ~
├── apps
│   ├── freenet-email-app
│   ├── freenet-microblogging
│   └── stdlib
├── Cargo.lock
├── Cargo.toml
├── crates
│   ├── locutus-core
│   ├── locutus-dev
│   ├── locutus-macros
│   ├── locutus-node
│   ├── locutus-runtime
│   └── locutus-stdlib
├── modules
│   ├── antiflood-tokens
│   └── identity-management
@sanity sanity added question Further information is requested C-proposal Category: A proposal seeking feedback A-developer-xp Area: developer experience labels Sep 2, 2023
@sanity
Copy link
Collaborator Author

sanity commented Sep 6, 2023

Command line development tool to be renamed fdev

@sanity sanity added P-medium Medium priority planned This has been synced to PT for triage and removed question Further information is requested C-proposal Category: A proposal seeking feedback labels Sep 6, 2023
@github-actions
Copy link

github-actions bot commented Sep 6, 2023

Pivotal Tracker story: https://www.pivotaltracker.com/story/show/185984589

@iduartgomez iduartgomez self-assigned this Sep 12, 2023
@sanity sanity changed the title Proposal: Rename "locutus" repository and other references to "kernel" Proposal: Rename "locutus" repository to "core" Sep 13, 2023
@sanity
Copy link
Collaborator Author

sanity commented Sep 15, 2023

Note: Github repo now changes from freenet/locutus to freenet/freenet-core

@iduartgomez
Copy link
Collaborator

suggested new structure and naming

public name (if any) src code (repo/path) crate/library/distributable executables (if any)
freenet freenet-core/src/core freenet freenet
fdev freenet-core/src/fdev fdev fdev
freenet/stdlib freenet-core/src/stdlib freenet-stdlib
freenet-core/src/macros freenet-macros

The standard library will have multiple language supports, it may be a good to split it to a different repo. But for now and to make things easier
we can proceed like is right now and we can do that as steep 2 after all the renaming,

currently the structure is like:

  • locutus-core <- library with all the shared functionality for running a working node (re-uses some runtime/stdlib)
  • locutus-dev <- dev tool codebase (re-uses some core)
  • locutus-node <- binary for running the node (re-uses core)
  • locutus-runtime <- wasm runtime that runs inside core (re-uses stdlib)
  • locutus-stdlib <- primitives for writing apps and interacting with core
  • locutus-macros <- proc macros, required by lang limitations

In the new structure, we remove node and runtime which are unified with core; both of which was an artifact of the evolution of the codebase and to keep certain separation of concerns. Alternatively, we could keep runtime to make certain parts of the codebase easier to test and make compilation faster.

@iduartgomez
Copy link
Collaborator

iduartgomez commented Sep 18, 2023

So maybe we should just bite the bullet and split off the stdlib itself to a new repo already. The stdlib will be multi-language (each supported lang will have it's own version), but there will be common data types shared (see https://github.com/freenet/freenet-core/tree/main/schemas/flatbuffers) and some functionality may be tightly integrated across languages (different host function calls).

We can keep it in this repo but then we will have to change the structure slightly and agglutinate all stdlib implementations in a common directory, it would look like:

freenet\freenet-core\
                                     \---------- stdlib
                                     \---------- stdlib\rust\...
                                     \---------- stdlib\typescript\...
                                     etc.

So may as well just create a new repo (e.g. freenet\freenet-stdlib and move things there). For local development it should not be a big deal since you can just change the cargo definition to point to path instead from the global cargo repository and iterate locally until you are happy and release a new version, on the other side this may increase the pace of releases for stdlib making friction cost a bit higher (so that's a potential trade off of moving too early toa new repo), until we are more stable.

@iduartgomez
Copy link
Collaborator

Change has been done but need to review documentation and doublecheck again that nothing was broke. Apparently there are soem rough edges around building the dependencies.

@iduartgomez
Copy link
Collaborator

All issues should be fixed in #853 so closing this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-developer-xp Area: developer experience P-medium Medium priority planned This has been synced to PT for triage
Projects
None yet
Development

No branches or pull requests

2 participants