Mafia SVN for Scripts?

Magus_Prime

Well-known member
Here is what happened today when I started mafia r12204:

Code:
Updating all SVN projects...
bale-relay-woods_getstuff is at HEAD (r5)
svn: E170001: OPTIONS of '/p/mafia-ocd/code': 403 Forbidden (https://svn.code.sf.net)
Validating repo...
svn: E170001: PROPFIND of '/p/mafia-ocd/code': 403 Forbidden (https://svn.code.sf.net)
Something went wrong while fetching svn directory info
Done.

After failing to reach Bale's unvailable script it stopped checking for any other repositories.

What is the suggested mechanism for removing a repository?
 
Last edited:

roippi

Developer
"svn delete <project>" will remove the project and corresponding local content. If you just want to get rid of a bogus working copy without touching local files, browse to the svn/ folder in mafia and just delete the project folder.
 

Fluxxdog

Active member
Question: Is there any plans for handling dependencies? For example, say I have Awesome Script (TM) but it has BeerLib as a dependency. Can I have the user automatically download BeerLib through SVN or is this planned?
 

zarqon

Well-known member
Absolutely anyone could mess with the submission

Yes, but that shouldn't really matter. Data verification can happen on the receiving end (I was assuming a recipient script, i.e. a PHP script hosted here), and then be further filtered by minions and whatever in-forum process we may set up for reporting obsolete or otherwise "unworthy" scripts.

The main thrust of my message, which I hope was communicated, is that I'd prefer the review process, if such there must be, to happen post- rather than pre-submission. Authors needing to submit their scripts to some sort of moderator review process to determine "worthiness" before acceptance strikes me as a needless bottleneck.
 

lostcalpolydude

Developer
Staff member
With the system you propose, all I would trust it for is finding a URL for a thread to copy-paste the SVN URL. At that point, I could skip the mafia integration completely.
 

Bale

Minion
Here is what happened today when I started mafia r12204:

Code:
Updating all SVN projects...
bale-relay-woods_getstuff is at HEAD (r5)
svn: E170001: OPTIONS of '/p/mafia-ocd/code': 403 Forbidden (https://svn.code.sf.net)
Validating repo...
svn: E170001: PROPFIND of '/p/mafia-ocd/code': 403 Forbidden (https://svn.code.sf.net)
Something went wrong while fetching svn directory info
Done.

After failing to reach Bale's unvailable script it stopped checking for any other repositories.

You really should delete that one off of svn. It's going to have a different address when I official release it on svn. I shouldn't have done that back then.
 

roippi

Developer
I think I have dependencies sorted:

(where below I declare project1 and chit as dependencies in project-beta)

Code:
> svn checkout https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject-beta/

Starting Checkout...
Validating repo...
Repo validated.
C:\Users\Ben\workspace\kolmafia\svn\mafiasvntest-myvalidproject-beta
A https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject-beta/dependencies.txt
A https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject-beta/scripts
A https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject-beta/scripts/valid2.txt
https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject-beta
At revision 14

Successfully checked out working copy.
Pushing local updates...
valid2.txt => C:\Users\Ben\workspace\kolmafia\scripts\valid2.txt
Done.
Installing 2 new dependencies.
Starting Checkout...
Validating repo...
Repo validated.
C:\Users\Ben\workspace\kolmafia\svn\mafiasvntest-myvalidproject1
A https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject1/scripts
A https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject1/scripts/valid2.txt
U https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject1
At revision 14

Successfully checked out working copy.
Pushing local updates...
valid2.txt => C:\Users\Ben\workspace\kolmafia\scripts\valid2.txt
Done.
Starting Checkout...
Validating repo...
Repo validated.
C:\Users\Ben\workspace\kolmafia\svn\mafiachit
A svn://svn.code.sf.net/p/mafiachit/code/images
A svn://svn.code.sf.net/p/mafiachit/code/images/chit
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/medium_orange.gif
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/select_mood.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/stats.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/refresh.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/mcdoff.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/mcdon.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/collapse.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/helpers.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/busy.gif
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/questsnone.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/medium_blue.gif
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/select_outfit.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/trail.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/elements.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/moodsave.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/moodnone.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/effects.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/Elements2.gif
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/upred.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/modifiers.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/helpersnone.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/update.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/mcdnone.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/moodplay.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/quests.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/up.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/moodburn.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/organs.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/medium_red.gif
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/tracker.png
A svn://svn.code.sf.net/p/mafiachit/code/data
A svn://svn.code.sf.net/p/mafiachit/code/data/chit_ReadMe.Txt
A svn://svn.code.sf.net/p/mafiachit/code/data/chit_effects.txt
A svn://svn.code.sf.net/p/mafiachit/code/relay
A svn://svn.code.sf.net/p/mafiachit/code/relay/chit.js
A svn://svn.code.sf.net/p/mafiachit/code/relay/charpane.ash
A svn://svn.code.sf.net/p/mafiachit/code/relay/chit.css
svn://svn.code.sf.net/p/mafiachit/code
At revision 18

Successfully checked out working copy.
Pushing local updates...
chit.css => C:\Users\Ben\workspace\kolmafia\relay\chit.css
charpane.ash => C:\Users\Ben\workspace\kolmafia\relay\charpane.ash
chit.js => C:\Users\Ben\workspace\kolmafia\relay\chit.js
chit_effects.txt => C:\Users\Ben\workspace\kolmafia\data\chit_effects.txt
chit_ReadMe.Txt => C:\Users\Ben\workspace\kolmafia\data\chit_ReadMe.Txt
tracker.png => C:\Users\Ben\workspace\kolmafia\images\chit\tracker.png
medium_red.gif => C:\Users\Ben\workspace\kolmafia\images\chit\medium_red.gif
organs.png => C:\Users\Ben\workspace\kolmafia\images\chit\organs.png
moodburn.png => C:\Users\Ben\workspace\kolmafia\images\chit\moodburn.png
up.png => C:\Users\Ben\workspace\kolmafia\images\chit\up.png
quests.png => C:\Users\Ben\workspace\kolmafia\images\chit\quests.png
moodplay.png => C:\Users\Ben\workspace\kolmafia\images\chit\moodplay.png
mcdnone.png => C:\Users\Ben\workspace\kolmafia\images\chit\mcdnone.png
update.png => C:\Users\Ben\workspace\kolmafia\images\chit\update.png
helpersnone.png => C:\Users\Ben\workspace\kolmafia\images\chit\helpersnone.png
modifiers.png => C:\Users\Ben\workspace\kolmafia\images\chit\modifiers.png
upred.png => C:\Users\Ben\workspace\kolmafia\images\chit\upred.png
Elements2.gif => C:\Users\Ben\workspace\kolmafia\images\chit\Elements2.gif
effects.png => C:\Users\Ben\workspace\kolmafia\images\chit\effects.png
moodnone.png => C:\Users\Ben\workspace\kolmafia\images\chit\moodnone.png
moodsave.png => C:\Users\Ben\workspace\kolmafia\images\chit\moodsave.png
elements.png => C:\Users\Ben\workspace\kolmafia\images\chit\elements.png
trail.png => C:\Users\Ben\workspace\kolmafia\images\chit\trail.png
select_outfit.png => C:\Users\Ben\workspace\kolmafia\images\chit\select_outfit.png
medium_blue.gif => C:\Users\Ben\workspace\kolmafia\images\chit\medium_blue.gif
questsnone.png => C:\Users\Ben\workspace\kolmafia\images\chit\questsnone.png
busy.gif => C:\Users\Ben\workspace\kolmafia\images\chit\busy.gif
helpers.png => C:\Users\Ben\workspace\kolmafia\images\chit\helpers.png
collapse.png => C:\Users\Ben\workspace\kolmafia\images\chit\collapse.png
mcdon.png => C:\Users\Ben\workspace\kolmafia\images\chit\mcdon.png
mcdoff.png => C:\Users\Ben\workspace\kolmafia\images\chit\mcdoff.png
refresh.png => C:\Users\Ben\workspace\kolmafia\images\chit\refresh.png
stats.png => C:\Users\Ben\workspace\kolmafia\images\chit\stats.png
select_mood.png => C:\Users\Ben\workspace\kolmafia\images\chit\select_mood.png
medium_orange.gif => C:\Users\Ben\workspace\kolmafia\images\chit\medium_orange.gif
Done.
Requests complete.

I want to install some more security features - I think there should be a max depth on recursion for dependencies installing dependencies, for example, and I want to idiot-proof the file reading of dependencies.txt. One of the biggest "gotchas" was not clashing between dependencies that specify one protocol (like svn://) and working copies that specify a different one. I think I have that sorted though.

I think the hardest part was figuring out whether to spell it "dependencies" or "dependancies". Apparently both are valid? wtf, English, get it together.
 

Bale

Minion
Wait! This means that if BatBrain and SmartStasis were on svn, then WHAM could automatically install them when it is installed? That is freakin' amazing!
 

Winterbay

Active member
Question: If a script has installed dependencies like this and the project is deleted (via svn delete) will the dependency stay behind then or will it get deleted as well? Also, I assume the system is smart enough to realise that a dependency is already installed and skip it in that case (to avoid unnecessary pop-ups warning about files being overwritten)?
 

roippi

Developer
Wait! This means that if BatBrain and SmartStasis were on svn, then WHAM could automatically install them when it is installed? That is freakin' amazing!

Yes, and then those projects can specify more dependencies, and those dependencies can specify their dependencies, and so forth.

Right now I'm just brute-forcing it by always opening up each dependencies.txt with a reader and reading the contents every dependency-check. I should probably be caching the results for subsequent dependency checks, but eh. I'll commit what I have right now, it seems fine.
 

roippi

Developer
Question: If a script has installed dependencies like this and the project is deleted (via svn delete) will the dependency stay behind then or will it get deleted as well? Also, I assume the system is smart enough to realise that a dependency is already installed and skip it in that case (to avoid unnecessary pop-ups warning about files being overwritten)?

The dependency will stay behind, dependencies aren't checked when doing svn delete. Nor do I think they should be.

Yes, there is code to detect when dependencies are already installed.
 

Bale

Minion
Once zarqon embraces this technology, no scripter will ever again have to explicitly express a need for people to install zlib.
 

roippi

Developer
Zarqon has understandably waited for the feature to mature before adopting. It's reasonable.

Right now I think the svn code is actually quite stable, outside of dependency stuff which hasn't been tested by anyone other than me.
 

Bale

Minion
Quite understandable. I would have waited longer except that I cannot resist the urge to play with new toys. Though it did help that one of my scripts is a prime candidate for this.
 

Winterbay

Active member
By "top-level" do we mean the same place that the /scripts-folder is placed or somewhere else? Just so that I have things clear for me when I can awesomely include zarqon's scripts :)
 

Bale

Minion
By "top-level" do we mean the same place that the /scripts-folder is placed or somewhere else? Just so that I have things clear for me when I can awesomely include zarqon's scripts :)

A picture is worth a thousand words. Example of how to make dependencies.

top-level is the place you aren't allowed to place any files or else it will fail. The same level where you place the /scripts-folder, as you say.
 

Winterbay

Active member
Is there a condensed list of the svn address for different scripts so you don't have to dig through all the posts to find it?

There will be when the so called "svn.txt" file gets added to somewhere as discussed in the last two or three pages. At this moment not many scripts has moved to SVN, only about 4 or 5 or so.
 
Top