8000 Roadmap for elba 0.4 · Issue #77 · elba/elba · GitHub 8000
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
This repository was archived by the owner on Jan 5, 2024. It is now read-only.
This repository was archived by the owner on Jan 5, 2024. It is now read-only.
Roadmap for elba 0.4 #77
Open
Open
@andylokandy

Description

@andylokandy

Towards elba 0.4

I am working on a big refactoring on the build system, index and the publish mechanism, and idris2 support also is included. Since this is a big task, I'll break it down into several parts.

New build system

Mostly all the current open issues are related to the buggy build system. The current build system is not well designed before being implemented, although it's being patched several times, it still lacks the ability to

To fix those, the cache mechanism, the manifest parser(along with the manifest definition) and the build job executor have to be completely reworked. I'll list the rough details of the changes:

  • Bin targets(including Tests) in manifest will be able to accept a codegen target
  • An import graph will be built by parsing the source files! This is an important way to increase the number of concurrent threads. The limit of 2 threads is caused by multiple compiler instances trying to build the same *.idr imported somewhere deeply in the import path. It can also be used to implement incremental build, where untouched files stay unbuilt.
  • Fix repl
  • Fix cache

Github-Hosted index backend (finished and online)

elba.pub was gone :( #76

We can't make sure that anything like this will never happen, because Idris has a high quality but small community, which is too small to run a custom package registry. Most of us know that this would also stop people from using the index, the greatest part of elba, which is indeed a pity. I think we should not trap ourselves forever and should make some progress:

  • Host the package on Github.

What I designed is to make a giant repo with all package tarballs maintained by a bot. And from the index repo, the entries refer to the raw tarball to the giant repo. To make it clear, I'll show you how you publish a package totally on Github:

  1. Commit and push your package to your repo.
  2. Go to an issue used for publishing in repo elba/index
  3. Comment @elba-bot /publish https://github.com/your/repo/commit/6ef8f2454
  4. elba-bot says @andy Package andy/idris-awesome|0.1.0 is published

Under the hood, elba-bot pulls your repo, then validates, compresses, commits to the giant source repo and update the index! And during the process, you're not required to get an access token or anything like that. You have a Github account and comment with it, then BOOM, it's all done.

I am going to start to implement all the above after I polish the ideas more, and I don't have a clear time schedule for it because I may be busy sometimes working on TiKV, as my job. And some in the plan may change in the future. But it's a work with pleasure. :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0