STACKLE: Really Simple Revision Contro (RSRC) l for LC Livecode (and perhaps any other document type)

"Pass the Baton/Stack"

Well the day has come. I'm going to build it. I needed this two months ago.

If you are interested, please reply off list. I will create a Google doc and invite anyone who responds in the next 72 hours... We take this discussion off line (Please don't ask me to renegotiate this decision) among those who are interested... hammer out the spec for V1 in a week or less and I will get it built)

Once we have a functional tool we will give it to the community, free of charge...

GIVEN THE FOLLOWING:

1) the VCS discussion is for super brains; even if realized may involve a level (GIT) of system management overhead/learning curve that developers focused on actual content production -- don't need, have time for, nor want to "go there."

2) We still don't have any other collaboration tool

3) We still don't have SFTP.

4) I don't see anything on the open market that does this (except Altuits old Magic Carpet which is off the map because it uses FTP and not SFTP)

It is here by proposed to build a "pass the baton" style stack collaboration tool.

I have this working in house of InDesign Documents. the core of the frame work for my app called "Grapple" is very simple. it's been working for a team of 10 for five years, flawlessly.

  I am "transpositing" this spec to LC stack but here is how it works

1) there is a repository on central server: e.g. /Volumes [public_html]/stackle-version-control

2) Projects are just folders on this server. e.g. /stackle-version-control/conquer-dev-isolation

3) there is a local repository on the user's machine with projects that match in ~/documents/stackle-version-control/conquer-dev-isolation

4) the server projects folders also have an /stackle-version-control/conquer-dev-isolation/archives folder inside each one.

The core code uses shell cmds

cp (to copy a file from the local machine to the server, vice versa and to copy archive versions)
mv  (aka "rename" files)

The RCS is handle by an old-fashioned RCS string tagged to the end of the document/stack file name.

conquer-dev-isolation_r1-co-BR.livecode

where the RCS string indicates, revision number, checked in or out status and the current editor.

the new app will use rsync instead...

There may also be a small supporting api requirement on the web server.

4) when a file is checked in the string is appended to the file name e.g

 conquer-dev-isolation.livecode becomes

conquer-dev-isolation_r1-c1-BR.livecode

a copy is made (we make lots and lots of copies!) this is saved in the local project folder and the file is posted to the central server in the project folder.

To check out:

1) conquer-dev-isolation_r1-c1-BR.livecode on the server is copied to the

/stackle-version-control/conquer-dev-isolation/archives/conquer-dev-isolation_r1-c1-BR.livecode

2) the "top" version is renamed to

conquer-dev-isolation_r2-co-BR.livecode

and downloaded to the local version control... From inside the UI you can launch these documents. Work and save, work and save (on conquer-dev-isolation_r2-co-BR.livecode)

At check in time, a copy of conquer-dev-isolation_r2-co-BR.livecode is made locally and it's name is changed to

conquer-dev-isolation_r3-ci-BR.livecode. and posted to the server... on the server the top file which is named

conquer-dev-isolation_r2-co-BR.livecode is moved to archives (an exact duplicate of the one already stored in archives... redundant, I know but you would be surprised what can go wrong where having these is useful)

and the top file is now:

conquer-dev-isolation_r3-ci-BR.livecode

The GUI is really just a clickable "finder" index showing the files in on the server folder for a given project.

That's it -- beginning and end of story.. To my existing framework i plan to add three additionalal project files

conquer-dev-isolation_discussion.txt # no wikis, no google docs. just one simple text file for comments ideas etc.

conquer-dev-isolation_specification.txt # formal spec with V1 features, road map etc.

conquer-dev-isolation_time-log.txt # line delimited file

with file name, check-in date stamp, developer name and time spent on the stack/file (prompt on check in for developer: "How much time did you spend on this iteration")

This last file can be used for billing purposes, download, parse and invoice/pay -- but V1 of STACKLE will not offer any further accounting "tools"

More details:

REQUIREMENTS:

WHO:

Admin= LEAD(in charge) HOST(just offers server space) CLIENT (corporate entity, manager, admin dev)

collaborators (works under lead)
participants (kinda open source on hosted files)
Paid devs (working for client)

But STACKLE will not know and does not want to know who is who. A project may have a LEAD/CLIENT with some helping probono and other on a paid basis, but the app doesn't care.. that's a private arrangement

SERVER:

Admin - LEAD/HOST/CLIENT must have a web server with root access admin rights, or at least be able to install SSH keys to the version control directory.

Collaborators/Devs must be able to generate SSH keys and send to LEAD

OUT OF SCOPE (What STACKLE will never do, at least not V1-3)

NO LOGIN/ACL FRAMEWORK

We do not provide any way for user to register, set user name, password, etc ... nothing.. LEAD must get ssh keys from DEVS (or grant them SFTP access and log into the server if that level of trust is part of the relationship: but STACKLE doesn't know and does not want to have anything to do with LogIn/ACL.

NO DELETE OR HOUSEKEEPING FUNCTIONS

The never ever offers any commands like this

rm
delete
put empty into url... [whatever]

copies just pile up everywhere. there is no opportunity for any user ever, to "blow it" by deleting any version. We have "super redundancy" Worst case scenario: server dies... no problem, collaborators have latest copies on their machines. admin + clients are responsible for their own housekeeping (you can accrue gigabytes of archives very quickly.

NO ADDITIONAL RESOURCES MANAGEMENT

Some mobile apps will only work with adjacent resources

SuperCoolWidget_r5-ci-BR.livecode
    /img
        /photos
        /audio
        /icons
    /data

STACKLE doesn't know about these.. it will be up to LEAD/HOST/CLIENT to give these or a subset of these to collaborators/participants/devs. LEAD/HOST/CLIENT may also give SFTP access to dev the server... STACKLE doesn't know about this and doesn't care and doesn't want to be part of any of that.


CAVEATS:  The long ID of the stack

if you are hard wiring the string which is the name on disk of your stack, which is in the last segment of of "the long id of this stack" in the code... it will break, because the file name on disk is constantly changing. I stay away from that myself

I'm not sure how to get around that one, or if it even matters.

stack "/Users/Brahmanathaswami/Documents/_Gurudeva Memorial App Development/Gurudeva.livecode"

will constantly be updated to

stack "/Users/Brahmanathaswami/Documents/_Gurudeva Memorial App Development/Gurudeva_r5-co-BR.livecode" stack "/Users/Brahmanathaswami/Documents/_Gurudeva Memorial App Development/Gurudeva_r6-ci-BR.livecode"

... so that's one caveat


If interested, email me off list soon. I have more to add to the above spec, but will save it for the Google Doc.

After I invite the initial "crew" we will close the door on that until V1 comes out.

I realize that some of this way of operating goes against the "open community" way of thinking, but as a "production manager: (my official hat here) I am tasked "getting the job done" and not with endless talking about something we need that never manifests, so we have to establish constraints to move forward efficiently. I want to have this build the next 30 days. Once we get rolling I can't be dealing list or forum posts... and if you want some input it will be appreciated... ten pairs of eyes are better than 2.

If it succeeds and is useful we can put it out there in the wild...

Swasti Astu, Be Well!
Brahmanathaswami

Kauai's Hindu Monastery
www.HimalayanAcademy.com


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to