Today is a special update, as last week was a special week. We were proud (and a tad nervous) to introduce to all of you the very first examples from the first pre-release of the SAFE network! We’ve been super-excited and each of your responses has really meant a lot to us!
With this milestone passed on Wednesday, the second part of last week was filled with discussions between the different library maintainers to make sure we are all aware of the road ahead. That first step is now stabilisation. Reflecting on the past year we’ve had many rewrites of the code-base (full rewrites) and - as we speak - crust is getting an important overhaul too, but it is note-worthy that for the majority of the project we can actually focus on improving what we have.
On Monday the final tasks were debated and a new sprint started at 15:00. We have no time to lose! We’ve made it to a first release, but that can be no excuse for slowing down. With the help of your feedback we’ve identified more problems that are currently in the system and it was everyone’s task to identify the most important ones, so we can address them first.
For every library the general theme is, as I’ve mentioned, stabilisation. That will include code clean-up and a more rigorous and cross-library style guide. It also includes improving code-coverage with more unit tests, extending the integration tests, and in some rare cases even implementing currently unimplemented code ! But of course, that is not enough.
So for crust @Peter_Jankuliak and @vinipsmaker are reworking the crust code base to follow the same paradigm as other libraries follow: full asynchronous programming with the help of rust’s channels. Last week a lot of work also went into a full review of the interaction of crust and routing and how the two libraries can work together to achieve cross-protocol NAT traversal. This has not been achieved before, and will be big a deliverable for a future sprint; the basics for it are being put down already though. From these discussions crust is now working to provide a new api to routing in version 0.3.0, after which routing can reconsider its connection management. All these efforts combine to have as many people as possible automatically join as a node, correctly to the network.
One layer up routings main prerogative is to debug known problems with churn handling and beefing up the unit and integration testing. After that efforts can go towards address relocation and the new crust api, and work towards the uTP (and TCP) hole punching.
Last week, running up to the pre-release a lot of work has been put into pushing the installers further. This will be continued, this time aiming for the Client installers and for the vault OSX installers.
Finally a big item for this rust-4 sprint is reserved for the Client guys, @ustulation and @Krishna_Kumar . Among other items, they will give a full revision to the SAFE-launcher RFC. This work will clear the path for the long awaited SAFE-launcher!
Finally we’re pretty excited to announce that the bounty program is really taking off ! You can read the details again on our blog. So far already two tasks are done and a third has been taken up. So feel free to join in and help us out.
There was no traditional Monday dev update, so also no corresponding transcript. It was replaced by a later meeting on the final sprint rust-4 objectives. Next week you will see the return of the transcript !
Also any more on how Structured Data can be used for enumerating / indexing of stored data structures would be very helpful. Both needed for SAFEpress!
For the weeks before I went away for a week (two Sundays ago) most of my daily builds of the bleeding edge stuff were pulling changes OK but failing to build. Since I have been back . . nothing seems to have changed - just now ALL five builds failed - this seems at odds with the gist of this Update . . what am I missing?
@philip_rhoades Which libraries? What version of rust? and could you please post a copy of the output you see - or raise an issue in the corresponding github repo whichever is easier for you.
Some of the cargo test parameters change over time - I would recommend checking out the .travis.yml in each library for the latest version of these.
Cheers
Ross
Unless a “stable” version is around - I was not expecting so many problems - but they all seem to be because of ‘solicit’:
crust:
/root/.cargo/registry/src/github.com-0a35038f75765ae4/solicit-0.4.1/src/server/mod.rs:84 stream.read_exact(&mut preface).unwrap();
^~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to 3 previous errors
Build failed, waiting for other jobs to finish…
Could not compile solicit.
routing
/root/.cargo/registry/src/github.com-0a35038f75765ae4/solicit-0.4.1/src/server/mod.rs:84:16: 84:40 note: candidate #2 is defined in the trait std::io::Read
/root/.cargo/registry/src/github.com-0a35038f75765ae4/solicit-0.4.1/src/server/mod.rs:84 stream.read_exact(&mut preface).unwrap();
^~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to 3 previous errors
Build failed, waiting for other jobs to finish…
Could not compile solicit.
maidsafe_client
/root/.cargo/registry/src/github.com-0a35038f75765ae4/solicit-0.4.1/src/server/mod.rs:84:16: 84:40 note: candidate #2 is defined in the trait std::io::Read
/root/.cargo/registry/src/github.com-0a35038f75765ae4/solicit-0.4.1/src/server/mod.rs:84 stream.read_exact(&mut preface).unwrap();
^~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to 3 previous errors
Build failed, waiting for other jobs to finish…
Could not compile solicit.
maidsafe_vault
/root/.cargo/registry/src/github.com-0a35038f75765ae4/message_filter-0.1.2/src/lib.rs:24:22: 24:39 warning: lint unsigned_negation has been removed: replaced by negate_unsigned feature gate
/root/.cargo/registry/src/github.com-0a35038f75765ae4/message_filter-0.1.2/src/lib.rs:24 unsafe_code, unsigned_negation, unused, unused_allocation, unused_attributes,
^~~~~~~~~~~~~~~~~
Could not compile solicit.
maidsafe_nfs
/root/.cargo/registry/src/github.com-0a35038f75765ae4/solicit-0.4.2/src/server/mod.rs:84:16: 84:40 note: candidate #2 is defined in the trait std::io::Read
/root/.cargo/registry/src/github.com-0a35038f75765ae4/solicit-0.4.2/src/server/mod.rs:84 stream.read_exact(&mut preface).unwrap();
^~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to 3 previous errors
Build failed, waiting for other jobs to finish…
Could not compile solicit.
I can skip testing in my script if the build fails so I haven’t got that far . .
Hey @philip_rhoades a couple of things - all the repos that start maidsafe_ are now renamed to safe_ e.g. https://github.com/maidsafe/safe_client so your script needs updated to reflect this, also I don’t see a cargo update in the script I would add that before the cargo build - give those a go and let me know how you get on.
That’s an improvement - now I get the safe_client test hanging here:
test client::test::account_creation …
The safe_vault test hanging with:
running 3 tests
test executable_connection_test … FAILED
test executable_immutable_data_churn_test … client routing Bootstrapped
The safe_nfs test hanging with:
running 23 tests
test directory_listing::directory_info::test::serialise … ok
test directory_listing::test::serialise … ok
test file::test::serialise … ok
test helper::directory_helper::test::configuration_directory …
I will update my gist script in case anyone else finds it useful.
I had tests hanging and it was because I hadn’t included the -features parameter for the repos that need it. Check the .travis.yml file in each repo folder for a “Features” line and if it is there you need to add -features <some_value> as in the safe_vault you need:
cargo test -features use_mock_routing
I added something to my script to grab this from the .travis.yml file and include it in the command.