ava-labs / apm Goto Github PK
View Code? Open in Web Editor NEWPlugin manager for Avalanche
License: BSD 3-Clause "New" or "Revised" License
Plugin manager for Avalanche
License: BSD 3-Clause "New" or "Revised" License
Currently the function writes lot of prints to stdout, and the lib users, like CLI, would benefict for giving it a logging instance
If you deploy the same subnet on Fuji and Mainnet, we need to decide if we want to track those in the same file or different ones. If we use the same file, we will need to do #27.
APM should support a subnet adding new upgrade bytes (it can do this multiple times)
There are several functions in the CLI's apmintegration
package that belong in the APM itself. Mostly on reading the installed repos and listing what's available. This ticket should move that functionality into the APM. I separate ticket can change how the CLI integrates the APM.
We should add a field to support network-level subnetConfigs. The most simple way would probably be to add a map type like so:
subnet-config:
mainnet: <config>
testnet: <config>
...
The apm object should accept a logger instance so it can tie insto the CLI's logger rather than printing directly to stdout. We want to suprress some of the tool's prints when used through the CLI.
LevelDB isn't a great storage abstraction for this. Would be better to just serialize state in a json/yaml file
We'll need to:
It'd be cool to have some kind of TUI interface for people who aren't as CLI savvy. The bubbletea framework looks promising.
Add support for commands to:
apm search "key-value"
apm info foobarvm
Add download script so customers can use the pre-compiled binaries instead of having to build from source.
Currently we have weird headers in plugin definitions, for example:
vm:
{ actual vm here }
These are unnecessary and were only originally added in when I was confused on how to use the yaml library. We should gut these before avalanche-cli's integration w/ apm is released.
Some networks might have multiple corresponding subnetIds. For example, I might have a network foo
that I want to be able to install + join. It might have subnetID 1234
for testnet, but 5678
for mainnet, but both use the same foovm
. We might want subnet definitions to look something like this:
alias: foo
networks:
testnet:
subnetID: 1234
mainnet:
subnetID: 5678
vms:
- foovm
...
... and users could join a subnet like so:
apm join-subnet --subnet-alias=foo --network=mainnet
This will only be needed once dynamic-whitelisting is enabled, at which point we can start using those APIs to correctly whitelist the right subnet id.
The APM should add the ability to check if an upgrade is available. That function should be callable from the CLI.
APM should be able to support a subnet changing VMs during an upgrade
After our discussion with the security team, we'd like to try signing and verifying packages using subnet admin keys. These will use p-chain addresses for signatures and can come from soft keys or from ledgers.
We need to check that each subnet release is signed appropriately. We should also verify that the subnet id does not change across updates.
If this does not work, we can switch to GPG signing with Yubikeys.
We may want to allow users to optionally provide release notes and have them distributed with the APM.
The APM should probably support uploading signed binaries and validating them on the import side.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.