Acropolis Launch Meeting
26.04.19
12:15 CET
45min
ZOOM
Bedeho
Martin
Alex
Bedeho
Jens
Martin
Mokhtar
:one: Present first release OKR proposal for discussion:
Launch Rome network
Get nnn posts on forum (limits, not Jsg) (ewd)
All nm modules fully specd (n)
Add tranches to storage-node (ewd)
No changes in code repos (excluding "pioneer") 5 days before release (ewd)
One more feature, or measurement of interaction
:two:. Identify projects, products, features, etc. and assign leads.
:three: Schedule "User Stories Meeting".
Started at: 12.15CET Present: Everyone
:one: OKR discussions
As a consequence of 5.
, this seems more like a subrelease from a user POW. This makes it a smaller release, thus no point in straying away from the greek theme. The discussion led to the following OKR for Acropolis:
Launch Acropolis Network
Get 200 posts on forum (limits, not Jsg) (ewd)
All n* modules fully specd (n)
Add tranches to storage-node (ewd)
No PRs merged to master (excluding bugfixes and "pioneer") after "Module Test" (ewd)
* Bedeho to define n, n_m, n_a, n_j, n_b
:two: Projects, products and features We did not explicitly address this point on the agenda, but it follows from the OKR that the main feature and leads are:
:three: User stories meeting The User Stories meeting is to be held on Tuesday at 12:15CET.
Other topics raised: No
Ended at: 13:15CET
ID: Acropolis User Stories Meeting
30.04.19
-> 02.05.19
12:15 CET
90min
ZOOM
Bedeho
Martin
Alex
Bedeho
Jens
Martin
Mokhtar
:one: After the launch meeting, we agreed on the specific goals for Acropolis
. Based on this, each lead shall prepare user stories for discussion, settle on final set of stories, and what consequences this may bring.
## Forum
This covers the experience of users across Pioneer, the command line.
### All (members + non-members)
As a user I can view a list of top level topic categories.
As a user I can open topic categories and view threads, by title and date of submission, and subtopic categories.
As a user I can view the set of moderators for a topic category.
As a user I can view a paginated list of posts in a thread.
As a user I can view the author, date of submission, text and history of edits for a post.
### Member
As a member I can post a new thread in a category, with a title and post.
As a member I can compose a post with text and images and submit to a thread.
As a member I can edit the text of a post a fixed number of times.
As a member I can learn how to become moderator in a given category.
As a member I can become a top level moderator by contacting Sudo (some how?).
As a member I can become a non-top level moderator by contacting the moderator of the parent category.
### Moderator
As a moderator I can pin and unpin a post at the top of a category.
As a moderator I can create a subcategory of my category.
As a moderator I can archive and unarchive a subcategory of my category.
As a moderator I can lock and unlock a thread in my category.
As a moderator I can make/remove someone a moderator in a subcategory of my category.
As a moderator I can delete a post in my category, leaving a reason.
### Sudo
As sudo I can alter the moderator set in any topic category
As sudo I can delete a category.
As sudo I can lock any member from doing any member+ level behaviour on the forum, and unlock.
As sudo I can change key forum constraint variables on mutating/creating posts, threads, etc.
## Storage
As root, I want to create storage tranches in order to manage the network.
As root, I want to activate/deactivate storage tranches.
-> Without working groups, this has to be root.
As a storage provider, I want to sign up to a tranche in order to start serving data.
As a storage provider, I want to view the tranches I'm signed up to in order to manage my capacity.
As a storage provider, I want to remove myself from storage tranches in order to manage my capacity.
-> Instead of staking for the storage provider role, one stakes for a tranche - otherwise the
mechanism is largely identical.
-> Must be possible for a single key to stake for multiple tranches.
As an uploader, I want the runtime to choose an appropriate storage tranche liaison for my upload.
As a downloader, I don't want to know anything about storage tranches.
-> Essentially, either role shouldn't know about tranches - but uploaders have this refined
requirement on the runtime API.
Notes: the current base of hyperdrive repositories effectively requires a fixed
liaison per drive, with everyone else mirroring. There is therefore an
alternative approach feasible.
As a storage provider, I want to create storage tranches in order to advertise my liaison capacity.
-> Creating a tranche means comitting to be the liaison for it, as well as having capacity.
-> Signing up for a tranche means having mirroring capacity and serving data.
As a non-liaison storage provider, I want to sign up to a tranche in order to mirror and serve data.
As a storage provider, I want to view the tranches I'm signed up to in order to manage my capacity.
As a storage provider, I want to remove myself from storage tranches in order to manage my capacity.
As an uploader, I want the runtime to choose an appropriate storage tranche liaison for my upload.
As a downloader, I don't want to know anything about storage tranches.
:two: Schedule the Release Plan Finalisation Meeting to no later than two working days after this meeting.
Started at: 12:20 CET
Present:
Alex
Bedeho
Jens
Martin
Mokhtar
Matthew
(observer):one: User Stories
Topics that generated the most discussion:
moderators
.
moderator
sudo
as moderator
sudo
to assign and revoke moderations rightsDocument after live edits:
## Forum
This covers the experience of users across Pioneer, the command line.
### All (members + non-members)
As a user I can view a list of top level topic categories.
As a user I can open topic categories and view threads, by title and date of submission, and subtopic categories.
As a user I can view the set of moderators for a topic category. <= OUT!
As a user I can view a paginated list of posts in a thread.
As a user I can view a post, in terms of author, date of submission and text
As a user I can view the history of edits on a post <= OUT!
### Member
As a member I can create a new thread in a category, with a title and text.
As a member I can compose a post in markdown and submit to a thread.
As a member I can reply to a prior post in a thread by getting a quote of the prior post in my composer.
As a member I can edit the text of a post.
As a member I can learn how to become moderator in a given category. <= OUT!
As a member I can become a top level moderator by contacting Sudo (some how?). <= OUT!
As a member I can become a non-top level moderator by contacting the moderator of the parent category. <= OUT!
### Moderator <== OUT
As a moderator I can pin and unpin a post at the top of a category.
As a moderator I can create a subcategory of my category.
As a moderator I can archive and unarchive a subcategory of my category.
As a moderator I can lock and unlock a thread in my category. <== OUT!
As a moderator I can make/remove someone a moderator in a subcategory of my category. <== OUT!
### Forum Sudo
As forum sudo create a subcategory.
As forum sudo I can delete a post.
As forum sudo I can delete a category.
### Sudo
As sudo I can make a member a forum sudo.
As sudo I can remove a forum sudo.
As sudo I can alter the moderator set in any topic category <== OUT!
As sudo I can change key forum constraint variables on mutating/creating posts, threads, etc. <== OUT!
Topics that generated the most discussion:
stake
Document after live edits:
## Storage
### Sudo
As sudo, I want to create storage tranches in order to manage the network.
As sudo, I want to activate/deactivate storage tranches. < out
-> Without working groups, this has to be sudo.
### Storage Provider
As a prospective storage provider, I want to know what the role entails.
As a storage provider, I want to sign up to a tranche in order to start serving data.
As a storage provider, I want to view the tranches I'm signed up to in order to manage my capacity.
As a storage provider, I want to remove myself from storage tranches in order to manage my capacity.
As a storage provider, I have to sign up for each tranche with a new key and run a separate storage instance for each tranche.
-> Instead of staking for the storage provider role, one stakes for a tranche - otherwise the
mechanism is largely identical.
### Uploader
As an uploader, I want the runtime to choose an appropriate storage tranche liaison for my upload.
### Downloader
As a downloader, I don't want to know anything about storage tranches.
-> Essentially, either role shouldn't know about tranches - but uploaders have this refined
requirement on the runtime API.
Note: the implication of these is that we have to define data object types for the release as well as their appropriate tranches.
Note: in this model we need to ensure that pioneer selects the correct data object type for the file to be uploaded, and the liaison enforces the appropriate constraints for this data object type. We probably need a mapping from data object type to constraints (1:1 or N:M) on the runtime.
Notes: the current base of hyperdrive repositories effectively requires a fixed
liaison per drive, with everyone else mirroring. There is therefore an
alternative approach feasible.
As a storage provider, I want to create storage tranches in order to advertise my liaison capacity.
-> Creating a tranche means committing to be the liaison for it, as well as having capacity.
-> Signing up for a tranche means having mirroring capacity and serving data.
As a non-liaison storage provider, I want to sign up to a tranche in order to mirror and serve data.
As a storage provider, I want to view the tranches I'm signed up to in order to manage my capacity.
As a storage provider, I want to remove myself from storage tranches in order to manage my capacity.
As an uploader, I want the runtime to choose an appropriate storage tranche liaison for my upload.
As a downloader, I don't want to know anything about storage tranches.
:two: Did not get to this.
Other Topics raised: No
Ended at: 14:05 GMT+2
ID: Acropolis Release Plan Finalization Meeting
09.05.19
11:15 GMT+2
90min
ZOOM
Martin
Martin
Alex
Bedeho
Jens
Martin
Mokhtar
:one: Finalize Release Plan
Started at: 11:15 GMT+2
Present:
Alex
Bedeho
Jens
Martin
Mokhtar
Dagur
(observer):one: The items in the draft Release Plan was examined and discussed. The main points of discussions were:
Settled on:
Get 75 posts on forum (limits, not Jsg) (ewd)
Forum (runtime), storage (runtime and P2P) fully specd (n)
Have 4x replication for all 2 tranches on storage node (ewd)
95% uptime Storage Providers (ewd)
No PRs merged to master (excluding bugfixes and "pioneer") after "Sub-system Test" (ewd)
Colossus
and Pioneer
had not been filled in by their respective leads, and was only covered superficially.
The milestones sections saw small adjustments to the Spec Release date, and a request to re-write the Sub-systems Test for clarity.
For the Public Infrastructure section:
Storage and Distribution Error Endpoint
tool to reduce the SoW for the Colossus team.For the Internal Infrastructure section, it was decided after some back and forth that Alex will be the manager Storage Uptime and Quality Tool.
Other topics raised:
Before the meeting was adjourned, the issue of making the Forum work without an Indexing Node was discussed.
Ended at: 12:30 GMT+2
ID: Acropolis Release Plan Milestone Evaluation Meeting
11.06.19
11:15 GMT+2
45 min
ZOOM
Martin
Martin
Alex
Bedeho
Martin
Mokhtar
:one: Evaluate the feasibility of Scheduled Milestones and update Live Milestones. :two: Evaluate feasibility of the scope.
Started at: 11:15 GMT+2
Present:
Alex
Bedeho
Martin
Mokhtar
Dagur
(observer):one:
Alex to focus on functionality, and reduce scope related to UI (e.g. not add pagination)
After Sub-System test, minor changes will be made to the runtime to initialize the new state.
Discovery test on staging-reckless
Sub-System test scheduled for Friday the 14.06.19
:two: Based on the conclusion in :one:, it was decided to delay Storage Tranches for the next release.
Ended at: 12:30 GMT+2
ID: Acropolis Lessons Learned
02.07.19
11:15 GMT+2
mm
ZOOM
Martin
Martin
Alex
Bedeho
Martin
Mokhtar
:one: OKR grading.
:two: What went wrong with planning and producing specs?
:three: Although we ended up releasing almost on time, we were not really ready.
Full test
(even worse than Sub-system
)Full test
, that should have been uncovered earlier.:four:
We initially set out to make issues
in the applicable repos, and add them to the Release Project. In practice, we tracked both forum and storage progress with a single issue in this repo. Should we continue this way?
:five:
Started at: 11:15 GMT+2
Present:
Alex
Bedeho
Mokhtar
Martin
:one:
Get 75 posts on forum (limits, not Jsg) (ewd)
Results:
0.55
Comment:
Although we only got 7 posts that counts, the forum was shipped successfully. We decided to grade it as two separate results:
1.0 * 0.5 + 7/75 * 0.5 = 0.55
Forum (runtime), storage (runtime and P2P) fully specd (n)
Results:
0.67
Comment:
The forum and storage runtime was fully spec'd, whereas the P2P aspect of the storage was considered too incomplete to publish.
Have 4x replication for all 2 tranches on storage node (ewd)
Results:
0.5
Comment:
We achieved more than 4x replication, but tranches had to be abandoned.
95% uptime Storage Providers (ewd)
Results:
0.75
Comment:
We split this up in two parts, where the end user uptime, and provider uptime was weighted at 0.5 each:
1.0 * 0.5 + 0.5 * 0.5 = 0.75
No PRs merged to master (excluding bugfixes and "pioneer") after "Sub-system Test" (conf)
Results:
0.5
Comment:
The storage node had non-bug fixes (improvements) merged to master after "Full test", whereas the forum side had none.
In general, we learned that the KRs have to be written and clarified better to reflect the goals for the release. It should be trivial to grade the OKR, while it should also reflect the level of success. This was brought up on later points as well. KR specific comments below:
We need to make it clear whether the goal is shipping a feature or getting interest. In this case, the KR only reflected participation, which was not Alex and Bedehos job. In the future, we must go for one or the other.
This KR was clear and unambiguous.
This KR was clear and unambiguous.
The "tool" was delayed, and not properly followed up. As a consequence, it was hard to actually grade it. Like for 1.
, it must be clear what we are actually tracking.
We realized we need more time between testing and release. See items :three: and :four:.
Finally, we discussed some general thoughts on how to organize OKRs. This was a recurring in the meeting, and we learned that we need to reconsider our approach to writing and tracking them for releases.
:two:
Runtime was "easier" to spec, whereas high level p2p is much harder to formalize.
Conclusion was to accept that specs need to be high level at this stage in development.
:three:
Without addressing each point in this item specifically, we agreed that:
Sub-system test
and actual release.:four: Everyone agreed to continue "large" issues, covering all aspects of each goal. If possible, we should try to combine KRs with these larger issues in a way where we can grade and track based on checkmarks filled either directly or with weighting.
:five:
Pioneer
. Potentially have Pioneer
(and other apps) check the runtime version before serving the user, or make a simpler way of deploying where the user get a notification that an upgrade is happening.5.
Other topics raised:
This leads to problems close to releases, when there is no one that can review properly. In particular for the storage node, where we had to rely on testing, not actually reviewing the codebase.
Smaller, contained and more frequent PRs, when possible.
However, there should have been better unit test coverage, and explanations of what the test did/should do. In the future, we should add empty tests as "todo" in the code.
Ended at: 12:35GMT+2