-
aruzicka
Hi, I created a new repo at hub.darcs.net, but I'm having trouble pushing to it. No matter what I do, I'm always getting darcs failed: Not a repository: aru⊙hdn:dotfiles (The program "scp -- aru⊙hdn:dotfiles/_darcs/inventory ./darcs28851-1" failed with error: "Connection closed by 173.255.254.113 port 22".) HINT: Do you have the right URI for the repository?
-
aruzicka
any ideas?
-
aruzicka
here's log from push --debug
paste.centos.org/view/79a272eb if that helps
-
Heffalump
there's an annoying hack needed in your ssh config - it's detailed under "How do I connect with ssh" on the hub.darcs.net homepage
-
aruzicka
I have the suggested .ssh/config from there, before that I was having issues with ssh client and server not being able to agree on a cipher to be used
-
aruzicka
or maybe we're not referring to the same thing?
-
Heffalump
no, I was referring to that. I'm not sure then. I guess you have uploaded your public key?
-
Heffalump
trying 'ssh -v aru⊙hdn' directly might get you better diagnostics
-
aruzicka
ah
-
aruzicka
could it be the server does not accept ed25519 keys?
-
Heffalump
quite possible - it's using a native Haskell ssh library and it's a bit hard to keep up :-(
-
aruzicka
"debug1: send_pubkey_test: no mutual signature algorithm", guess I need to tweak the ssh config a bit more
-
aruzicka
PubkeyAcceptedKeyTypes +ssh-rsa helped
-
aruzicka
can I send a patch to the faq somewhere?
-
Heffalump
-
Heffalump
thanks!
-
aruzicka
so how does this work? I create my own fork, add patches there, push them to my fork and then you pull the patches into yours?
-
Heffalump
I'm not simon (that's sm) but either that or if he turns the issue tracker on you might be able to submit a patch directly there
-
aruzicka
ah, ok, thanks for clarification
-
» aruzicka sighs
-
aruzicka
> Also, we only support RSA ssh keys at the moment. If your usual ssh key is eg ED25519, you will need to generate a RSA key for connecting to darcs hub
-
lambdabot
<hint>:1:5: error: <hint>:1:5: error: parse error on input ‘,’
-
aruzicka
I should spend more time reading the docs
-
aruzicka
One more thing maybe, when looking at a repository in darcshub I can see "branches" button, but darcs by itself doesn't have a concept of branches, does it?
-
aruzicka
ah, faq to the rescue. that's pretty cool
-
aruzicka
-
sm[m]
aruzicka: thanks! merged
-
sm[m]
perhaps you could confirm the front page has updated, I'm not sure if your change is visible there
-
aruzicka
sm[m]: doesn't look like it
-
sm[m]
aruzicka: ah, and now ?
-
sm[m]
seems so
-
sm[m]
thanks
-
aruzicka
yeah, now it's there
-
cads
Hey all, I am doing a bit of a comparative analysis of windows dev tool installers - I'd like to make a feature matrix including what MSI generator they use (if any), what dependency management layer do they use, what language is their installer generator written or configured in, as well as qualitative impressions of usability of each solution.
-
cads
so far I am including: python, typescript, npm, yarn, golang, rust, GHC, git, mercurial, and darcs
-
Heffalump
for darcs we just ship a single .exe
-
Heffalump
ghc I'm not sure off the top of my head
-
cads
what is the exe/msi generator does darcs use?
-
Heffalump
I mean literally a single .exe, that you copy to your PATH
-
cads
oh, so currently the exe generator does not produce an msi package
-
cads
inno setup does that pretty well, and for almost no config
-
Heffalump
the "exe generator" is literally "cabal build" :-)
-
cads
does cabal build generate MSI targets?
-
cads
or, can it do so easily?
-
Heffalump
not that I know of
-
cads
apart from the applications I listed, do you have any recommendations of a tool with a windows deploy story that you'd like darcs to take inspiration from?
-
sclv
this is pretty bitrottd but it might be a basis
hackage.haskell.org/package/bamse
-
cads
So far the linux layer I have seen solutions include: msys (git uses this to provide bash and other unix tools) wsl2 (docker uses this to provide docker desktop community on windows home, surprisingly) and chocolatey (some GHC deploy paths use this, NPM currently uses this)
-
sclv
for darcs i don't see why anything fancier than a single executable is necessary
-
sclv
its beautiful when an app can just be that
-
cads
when you say single executable I hope you mean windows installer
-
Heffalump
I'm not sure it's ideal: it means getting it onto the path means manual work, and uninstallation is non-standard
-
sclv
no i mean just the app
-
cads
sclv, are you a windows user?
-
sclv
i have been for a long time
-
sclv
at the moment i'm not using it
-
cads
oh, okay, well, then I don't want to /fully/ discount your opinion
-
cads
but if I'm building this, it's gonna be an installer, because I need that so I can use that in a corporate environment... and if you want, there will be a portable option
-
cads
I have given examples of 10 projects that I believe each have over a million installs per month, and which I believe each follow clear and identifiable best practices that I plan to elicit. What I want is 2 or 3 others I have missed, which may have new and useful features that can improve the existing darcs user experience, especially among young and corporate users.
-
cads
sclv, I feel like some cross platform installer generator will be the fastest ticket. The thing should take the exising darcs binaries, make shortcuts, sets paths, lets the user uninstall, and gives them news of updates. And it should take about 50 lines or less of config file to achieve, modulo the installer generator (which may honestly require python, NPM, or rust)
-
sclv
i've worked a lot on installers and a cross-platform installer generator is basically a mythical creature at this point
-
sclv
for windows wrapping a binary in an msi or chocolatey is easy
-
cads
*nod*
-
cads
it's even a kludge in most projects, even in projects much much bigger than darcs is currently
-
cads
but there's still the effort made to appear like there's a one click GUI installer, even when it's just msys garbage in the backroung (looking @ u, gitforwindows)
-
cads
and I think this is because perhaps 50% of prospective users on windows will simply /turn around/ if they land on a product without a standard installer
-
cads
so they /need/ to make that effort - it's effectively a marketing effort, on top of being a useful onboarding tool
-
cads
<sclv> i've worked a lot on installers and a cross-platform installer generator is basically a mythical creature at this point <- my thoughts are that the windows installer scenario needs its code for sure. But if we're lucky, I think we're talking about less than 200 lines of code and configuration for that scenario. And IMO the linux install story is already to the standards I expect as a linux user - in linux (and even WSL2 for that matter)
-
cads
I can get up with GHCUP and intstall, and have darcs compiled within minutes
-
sclv
sure. bundling an msi is easy
-
sclv
in my experience darcs is enough for a narrow audience that having a gui installer isn't really the obstacle so much as... everything else
-
sclv
(network effects primarily, and lack of gui tools like right click menus etc as a distant second)
-
cads
what's the everything else? when I wanted to install darcs last week an installer would have gotten me up and running. Instead I have been on a week long journey learning the latest and greatest haskell installation tricks
-
sclv
i mean why didnt u just download the exe
-
cads
sclv, because that would not have given me an automated installation method, which is what I want
-
sclv
anyway i specified "everything else" above -- graphical tools in particular similar to those for svn or git that integrate with windows
-
cads
sclv, I will admit that that's a concern for me too, but for now I want to normalize and automate the installation story. Then I'll think about how to get a cheap graphical interface
-
cads
for example, I wonder it we could force it into an existing electron based SVM manager like Github desktop, like cinderella's sisters trying on a shoe that is much too dainty
-
cads
Imo saying that we should not nail down the installer because we don't have, say, a working teamhub like gitlab or github... is like saying we should not line the walkway to our door with cobblestones, because the driveway is still a muddy wreck. Imo the sooner we line the the main approach with cobblestones, the sooner we get visitors that want to fix the driveway. - it's a low hanging fruit and my questions is not why hasn't someoene else
-
cads
done it, or why should I focus on something else bigger first. I want to know what I should do to do it well
-
sm[m]
in addition to simply providing the familiar flow some windows folks prefer, I assume an installer does things like: install a desktop shortcut, install start menu items, configure permissions to minimise annoying security popups, and install an uninstaller
-
cads
*nod* all things I would consider essential
-
sm[m]
also: registers the app so it can be managed with other apps in control panel
-
cads
and some form of update notification too - say a discrete check on windows startup
-
sm[m]
option to start the app at windows startup/login..
-
sm[m]
register it with antivirus tools ? maybe
-
cads
hmm, all features that I've either impleemnted or would be happy to include in my toolkit
-
cads
the antivirus one is subtle, and I'll have to look into what can be done - that's certainly a source of issues I would like my business users to know I have minimized
-
sm[m]
cads do you know the existing similar projects people have tried before ?
-
sm[m]
I don't off the top of my head but they must exist
-
cads
lol, imo haskell is a notorious graveyard of bitrot, so i bet there are perhaps 5 archeological layers of failed implementation that we could dig up
-
» cads feels this way about python too, the more they dig into it
-
sm[m]
-
sm[m]
I beg your pardon, I must have misheard you :)
-
cads
oh, as far as installer generators - I have used a couple - I used QT installer, and I used Inno Setup
-
sm[m]
cross platform ?
-
sm[m]
(I understood that was your goal)
-
cads
as I see it I am rounding out the cross platform installation story by closing a gap in the best practice conformance of the /windows/ branch of an /existing/ cross platform deployment process
-
cads
ie, as I think we both alluded to above, a cross platform installer is really 3 scripts that you bolt onto your build system - one puts out a linux tarball (and maybe rpm/deb), another puts out whatever you're using to deploy to mac (not familiar with techs here), and one puts out a windows installer
-
cads
sm[m], the QT installer framework does do cross platform GUI installers - if you want that for linux you'd have to convince me that it's needed, rather than bloat or something that will confuse the average user
-
cads
imo darc's linux install process needs maybe a /little/ automation - I am looking to GHCUP here. And maybe it needs deb/rpm packaging - I can can see debs/rpms as an important build target, and I think it should be possible to get free continuous integration testing against debian, redhat and windows machines (through azure, of all things)
-
Heffalump
it is shipped with Debian isn't it?
-
Heffalump
bfrk has been setting up CI with github actions recently (which I guess are Azure)
-
cads
noice
-
sm[m]
cross platform packaging is (a) of course super valuable (b) a costly ongoing sisyphean task
-
cads
I want to learn how to automate it though, and if there's cross polination to how I build and maintain and deploy my revenue generating code, then I'm a happy customer
-
cads
I am a little worried that I'll lose morale and motivation once it really sinks in that git's infrastructure first mover advantage might be SO HUGE that I may simply never be as productive in darcs as I am in git.
-
sm[m]
perhaps projects like firefox, or in haskell world, daedalus are good sources of ideas
-
sm[m]
is your product idea dependent on darcs somehow ?
-
cads
not at all, but if I'll be working on a SCM, it'd like to "self host" in that SCM in order to be forced to eat my own dogfood
-
cads
so like, imagine I hire 2 part time devs to help, and now instead of telling them go sign up to my github org, I have to give them another darcs based gateway to access. I am thinking of phabricator, because it already has it own (much simpler) internal source control model, it already can be fed by multiple SCMs including git and mercurial, and it provides really realyl nice code review
-
sclv
i mean there's darcsden too
-
cads
yeah but phabricator is being used for tens of thousands of users at facebook and some other really large firms - is darcsden making anybody money who would be willing to tell me so (and tell me how?)
-
sclv
i mean no but its just a tool so pick the tool for the job *shrug*
-
cads
well lets suppose the job is to do as little work as possible but get serious folks interested in hacking on darcs... and I feel like writing CI plugins for platforms with millions of users could be a way to attract a lot of attention, on top of being perhaps simple enough for me to achieve
-
cads
but I haven't even tried using darcs den - I will try it out
-
cads
last update in 2015
-
cads
did I mention that part of this exercise is a strenuous exercise in reading, comprehending and maintaining FP legacy code, as part of an experiment to decide if I'm going to build any of my business around haskell
-
cads
I feel like bashing my head against random bitrotted haskell is going to teach a lot about whether I want haskell in my organization, maybe I can benefit our community while I do it, and maybe, just maybe, it becomes a sustainable practice that benefits and informs my other operations
-
sm[m]
cads: just wondering why you're interested in using darcs at all.. because it's a haskell project ?
-
cads
sm[m], I want to extract a generic type of SCMs, and use that to create a kind of customizable SCM compiler
-
sm[m]
cool. You seem to be doing a lot! :)
-
cads
and I think that observing darcs is going to help with that, though I am a little worried about whether the code is as clean and understandable as pijul
-
cads
part of it is that it's haskell code, and I know haskell better than rust. The other part is that I think category theory will be important, and haskell is almost a no brainer there
-
sm[m]
for reading a large haskell codebase these days I would set up vs code and the haskell extension
-
sm[m]
category theory isn't super important
-
sm[m]
but maybe a bit more so with darcs, would you say Heffalump ?
-
Heffalump
there's not much category theory in darcs either
-
cads
lol, I just read a paper that shows us how to graphically compose a block chain using nothing but some monoidal functors
-
Heffalump
there's a bit more in pijul
-
cads
and the result looks really really cool!
-
Heffalump
you find pijul code clean and understandable? I had the opposite impression from most people that have looked at it.
-
cads
only comparing to darcs or git code
-
sm[m]
darcs code should be pretty good, except that it's dealing with some pretty hairy concepts
-
Heffalump
it has quite a lot of legacy too
-
Heffalump
bfrk has been cleaning it up
-
sm[m]
haskell enforces certain minimum standards
-
cads
there's a lot of fucking legacy stuff that really needs to be refactored
-
cads
I feel like it has perhaps 150% the number of modules it should have
-
cads
and it's not easy to get an idea of how the system works just by reading the names in the file tree, but with pijul it is
-
Heffalump
fair enough
-
sm[m]
if you say so.. Which codebase will still be runnable in ten years ?
-
sm[m]
earlier you said "haskell is a notorious graveyard of bitrot", but surely I misheard :-)
-
cads
I don't know if pijul has long term prospects, and I hear the community might be self defeating
-
sm[m]
pijul hasn't gone anywhere in ten years, but perhaps the current rewrite/reboot will help
-
cads
lol, I will keep close to my breast the results of my comparative reading of the two sources, lest I prickle your muffin, sm[m] ;)
-
sm[m]
no I'm interested. :) please do share any insights
-
cads
so far I have looked at no more than 3 sample files between the two projects, and I haven't compared any units that do nearly the same thing - I think /that/ will be interesting
-
cads
I think that haskell and rust can both put out DOT files of a project's module interdependencies
-
cads
sm[m], do you know of any other SCMs built in languages that are not C or C++? For example, mercurial exectuable code is 80% python and 20% c by SLOC count. I feel like that is too much C.