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

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

2022-08-19 Thread DC*
Hey Arne,

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!

Best regards

On 2022-08-17 22:20, Dr. Arne Babenhauserheide wrote:
> Hi,
> 
> 
> infocalypse is the awesome code-over-freenet tool created by djk 
> and turned into an actual social coding tool by Steve (operhiem1), but
> it has been broken in Python 3 for many years.
> 
> Last weekend I bit the bullet and spent a day (well, an evening, a night,
> and a day) to get the minimal roundtrip working again: clone your code
> to Freenet, clone back to the local computer, commit, and push it back.
> It was lots of annoying string-to-byte and byte-to-string handling, but
> it got into a minimally working state!
> 
> Then Debora took it up and fixed fn-setup which creates your local
> infocalypse environment (I still had mine around so I didn’t hit that
> while testing) and sent a bundle with the changes over FMS. Thank you!
> 
> Infocalypse is not yet fixed completely, but its core workflow is
> operational. (with WoT and without WoT)
> 
> 
> We have a working code-over-freenet system again!
> 
> 
> 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
> 
> 
> Then try the roundtrip:
> 
> # variables for the run, choose a WoT ID of your own
> export WOT_ID=ArneBab
> export UUID=$(uuidgen);
> 
> # create a new repository
> rm -r /tmp/infocalypse-*
> hg init /tmp/infocalypse-revived
> cd /tmp/infocalypse-revived
> echo "Follow the white rabbit" > looking-glass.txt
> hg ci -Am "infocalypse"
> 
> # clone to Freenet and get it back
> hg clone . freenet:${WOT_ID}/infocalypse-revived-$UUID
> hg clone freenet:${WOT_ID}/infocalypse-revived-$UUID
> /tmp/infocalypse-averted
> 
> # do a change and push it into Freenet again, this time without WOT
> cd /tmp/infocalypse-averted
> echo "One pill makes you larger" >> looking-glass.txt
> hg ci -m "And one pill makes you small, so you can roundtrip"
> hg clone . USK@/infocalypse-averted
> 
> 
> 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
> work until they have a release they can insert to auto-update.
> 
> Known to the community for the good work they have been doing on Freenet
> in the past, an unbound focus of Freenet development.
> 
> 
> Best wishes,
> Arne


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

2022-08-17 Thread Dr. Arne Babenhauserheide
Hi,


infocalypse is the awesome code-over-freenet tool created by djk 
and turned into an actual social coding tool by Steve (operhiem1), but
it has been broken in Python 3 for many years.

Last weekend I bit the bullet and spent a day (well, an evening, a night,
and a day) to get the minimal roundtrip working again: clone your code
to Freenet, clone back to the local computer, commit, and push it back.
It was lots of annoying string-to-byte and byte-to-string handling, but
it got into a minimally working state!

Then Debora took it up and fixed fn-setup which creates your local
infocalypse environment (I still had mine around so I didn’t hit that
while testing) and sent a bundle with the changes over FMS. Thank you!

Infocalypse is not yet fixed completely, but its core workflow is
operational. (with WoT and without WoT)


We have a working code-over-freenet system again!


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


Then try the roundtrip:

# variables for the run, choose a WoT ID of your own
export WOT_ID=ArneBab
export UUID=$(uuidgen);

# create a new repository
rm -r /tmp/infocalypse-*
hg init /tmp/infocalypse-revived
cd /tmp/infocalypse-revived
echo "Follow the white rabbit" > looking-glass.txt
hg ci -Am "infocalypse"

# clone to Freenet and get it back
hg clone . freenet:${WOT_ID}/infocalypse-revived-$UUID
hg clone freenet:${WOT_ID}/infocalypse-revived-$UUID 
/tmp/infocalypse-averted

# do a change and push it into Freenet again, this time without WOT
cd /tmp/infocalypse-averted
echo "One pill makes you larger" >> looking-glass.txt
hg ci -m "And one pill makes you small, so you can roundtrip"
hg clone . USK@/infocalypse-averted


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
work until they have a release they can insert to auto-update.

Known to the community for the good work they have been doing on Freenet
in the past, an unbound focus of Freenet development.


Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
draketo.de


signature.asc
Description: PGP signature