Remaining reviews needed to release Freenet 1495

2022-11-05 Thread Dr. Arne Babenhauserheide
Hi,


We’re getting ever closer to release. I merged the already reviewed
pull-requests, but some important PRs remain so we can release. Please
help getting these reviewed!


Small or simple reviews:

- only include the inline m3u player if the page contains media-tags
  https://github.com/freenet/fred/pull/802

- bookmarks: add infocalypse and pyFreenet sharesite
  https://github.com/freenet/fred/pull/801

- add sky-dark-static theme by CometZ@6DtYG~
  https://github.com/freenet/fred/pull/796

- m3u-player: skip tracks that fail.
  https://github.com/freenet/fred/pull/795

- Client getter honor max size argument
  https://github.com/freenet/fred/pull/794


More complex review:

- Redesign firsttime wizard (updating the PR from redwerk)
  https://github.com/freenet/fred/pull/790
  (this needs review of the changes I added to ship the needed dependencies)


Once the pull-requests above are reviewed, we can finally release 1495
with pretty cool improvements:

- new firsttime wizard (single-step joining with clearer defaults)
- Add web+freenet and ext+freenet as supported schemas to support
  extensions. Thanks to TheSeeker
- healing size increased (better lifetime for popular files)
- CSS: enable sticky — thanks to Spider Admin
- CSS: enable transition and word-wrap — thanks to naejadu, thanks to
  vwoodzell for the review!
- Eleriseth pending keys merged (performance)
- re-organize default bookmarks: first section has "starting points",
  thanks to vwoodzell for the review!
- new theme: sky-dark-static
- m3u-player: only inline the m3u player if the page contains media tags
- m3u-player: skip broken files
- Client getter honor max size argument
- finally merged the HashingAPI by unixninja92, a GSoC project that had
  gotten lost in the pull requests. This provides an easy and
  well-tested way to create and verify different types of Hashes from
  byte arrays, including Sha256 and TigerTree.
  https://github.com/freenet/fred/pull/258
- upgrade unit tests to junit4, thanks to vwoodzell!
- old announcement fixes by toad finally merged



The following PR does not block the release, because it needs conceptual
review to ensure that we won’t get problems when deploying in a large
network, and that we don’t make it easier to observe behavior. The
existing logic seems to be problematic, but it does not break down
completely, and this is a pretty sensitive area:

- Trivuele batch 2: RequestStarter simplification and fixes
  https://github.com/freenet/fred/pull/777
  (it would be good to have more comments in this which explain the
  logic. There is somewhat detailed documentation in the commit message:
  
https://github.com/freenet/fred/pull/777/commits/984ad3f81a4374a8fe2d55cdec21ba92ab990082
  )


Finally, this is one of the two remaining release blockers:

- Create initial Github CI flow
  https://github.com/freenet/fred/pull/775
  (this needs review to ensure that it cannot spill deployment or
   account information)


And if you want to help DC* finish the Debian package (to get to the
point where people can just apt install freenet), please have a look at

- Debian Package Continuation
  https://github.com/freenet/fred/pull/774


Best wishes,
Arne


We need people to check the pull-requests. I’m not merging anything into
fred (=autoupdate) not seen by at least 2 people (author + reviewer) to
ensure that if I merged something without review this would raise red
flags and get many people to check that.

That protects Freenet against being corrupted by putting pressure on me
(or any other release-manager).

So if you can make some time, please have a look at one of the pull
requests that is not yet marked as readyToBeMerged:
https://github.com/freenet/fred/pulls


Thank you for your interest in Freenet!


Best wishes,
Arne
--
What is Freenet?

Freenet is a peer-to-peer platform for
censorship-resistant and privacy-respecting
publishing and communication.

I worry about my child and the Internet all the time, even though
she's too young to have logged on yet. Here's what I worry about. I
worry that 10 or 15 years from now, she will come to me and say
'Daddy, where were you when they took freedom of the press away from
the Internet? --Mike Godwin, Electronic Frontier Foundation

That Freenet can keep moving forward and help people worldwide to
exercise their basic rights and freedoms is the work of amazing
volunteers, both contributors and people running Freenet nodes.

See https://freenetproject.org


signature.asc
Description: PGP signature


Re: infocalypse: version control over Freenet mostly works again with Python 3

2022-11-05 Thread Dr. Arne Babenhauserheide
Hi,

DC*  writes:
> Thanks for looking into this. This project is really cool and promising.
>
> Hope I can give it a try soon. Keep up the good work!

Thank you for your answer!

The full version tracking roundtrip over Freenet — including
*pull-request* and *notifications* — works again! And there is now a
doc/usage.org file with a full interaction example.

And thanks to tactical enabling of the RealTimeFlag, it now needs 80%
less time in my tests.


If you want to try it, first install:
- Mercurial https://www.mercurial-scm.org
- pyFreenet3 (pip3 install --user pyFreenet3)

Then get infocalypse and set it up:
hg clone hg.sr.ht/~arnebab/infocalypse ~/infocalypse
hg -R ~/infocalypse update py3
echo "[extensions]
infocalypse = ~/infocalypse/infocalypse
" >> ~/.hgrc

For pull-requests, you need two Identities. None of them may be a prefix
of the other. Both must have enabled Freemail in the web interface (set
a non-empty password!) and stored the login settings via

hg fn-setupfreemail --truster TestBab-2@ --mailhost 
127.0.0.1

I use TestBab-1 and TestBab-2 in this example.

Then try the roundtrip:

# Variables for the run, choose two WoT IDs of your own, do not use
# the same: you cannot message yourself yet.
export WOT_ID1=TestBab-1
export WOT_ID2=TestBab-2
export N=$(uuidgen);

# Cleanup
rm -r /tmp/infocalypse-*
cd /tmp

# Prepare first repository
hg init infocalypse-revived-${N}
cd infocalypse-revived-${N}
echo "Follow the white rabbit" > looking-glass.txt
hg ci -Am "infocalypse"
cd ..

# Share the repo
hg clone infocalypse-revived-${N} 
freenet://${WOT_ID1}/infocalypse-revived-${N}

# Get a repo and add changes
hg clone freenet://${WOT_ID1}/infocalypse-revived-${N} 
infocalypse-averted-${N}
cd infocalypse-averted-${N}
echo "One pill makes you larger" >> looking-glass.txt
hg ci -m "And one pill makes you small, so you can roundtrip"

# Share the repo and file a pull-request
hg clone . freenet://${WOT_ID2}/infocalypse-averted-${N}
# the . means "the current folder"
hg fn-pull-request --wot ${WOT_ID1}/infocalypse-revived-${N} --mailhost 
127.0.0.1 # enter a message
cd ..

# give the pull-request 5 minutes of time to propagate
sleep 5m

# Check for pull-requests, then pull and share the changes
cd infocalypse-revived-${N}
hg fn-check-notifications --wot ${WOT_ID1} --mailhost 127.0.0.1
hg pull -u freenet://${WOT_ID2}/infocalypse-averted-${N}
hg push freenet://${WOT_ID1}/infocalypse-revived-${N}
cd ..


The result of hg fn-check-notifications --wot TestBab-1 --mailhost 127.0.0.1:

Found pull request from 
'testbab-2@4ev53r3crqpgc7yftwjl2qjtqfds6d4lipi7jbofw7qwksplm3na.freemail':

testifoo

bar
baz


To accept this request, pull from: 
freenet://USK@4Svdx2KMHmF-BZ2SvUEzgUcvD4tD0fSFxbfhZUnrZto,Qp2rRpMpSLFNEvMfcQCw5HH8vkDnhYu-eYLskXAMXdk,AQACAAE/infocalypse-averted-f494c10b-7ffd-403b-8e69-033fee4db12a.R1/1
   To your repository: 
/tmp/infocalypse-revived-f494c10b-7ffd-403b-8e69-033fee4db12a
hg -R /tmp/infocalypse-revived-f494c10b-7ffd-403b-8e69-033fee4db12a pull 
'freenet://USK@4Svdx2KMHmF-BZ2SvUEzgUcvD4tD0fSFxbfhZUnrZto,Qp2rRpMpSLFNEvMfcQCw5HH8vkDnhYu-eYLskXAMXdk,AQACAAE/infocalypse-averted-f494c10b-7ffd-403b-8e69-033fee4db12a.R1/1'


That’s it: a full, anonymous, decentralized, pull-request based
workflow over Freenet.

Please give it a try and write how it works for you: whether it breaks
or whether it just works!

I only tested it locally and there may be some dependencies on my local
setup that we still need to prune.

Best wishes,
Arne

PS: I also posted this to reddit: 
https://www.reddit.com/r/Freenet/comments/ymw6uf/infocalypse_truly_decentralized_version_control/

>> I’m really happy that infocalypse works again!
>> 
>> This gets us one step closer to self-sufficient development: Freenet
>> development could now be done by a group of pseudonymous people. We can
>> already release updates when all our centralized infrastructure is down
>> (if we decide to ship the old windows installer and let Windows boxes
>> update over Freenet; Microsoft requires centralized signing), now we can
>> actually do development over Freenet again.
>> 
>> We don’t yet know whether it will work with larger repositories like
>> fred (it used to, but back then the network was 3 times larger), and
>> we’ll have to check and possibly fix hg fn-reinsert so all contributors
>> can keep the repository working, but we finally have that in place
>> again.
>> 
>> 
>> A foundation of real information freedom in the internet — safe against
>> censorship by threat and by harassment and by flooding with noise.
>> 
>> 
>> Imagine a group of hackers living in remote or citybound meshnets,
>> connecting with solar-powered nodes to their friends while using their
>> pseudonymous developer IDs to check on pull-requests and merge their