Quasi-meta-issue for brainstorming on and adding additional not-covered-elsewhere items necessary for mapping git repos to the project UI.

This issue should only be closed once we're ready to deploy phase 2, and we can't come up with any other misc work.

Comments

mikey_p’s picture

I think the mapping is basically going to be defined by the project's short name, based on the comments in #781300: option to lock project short name.

The task that I don't see an issue for yet, is that we will be creating a repo for each project node created on drupal.org. This has some pretty far reaching implications, but the primary one I am seeing is that we'll need to actually instantiate the repo, and update the gitolite config as soon as possible, and then provide the info (from the project_git_instructions module?) to the user as soon as the repo and config are updated.

I'm not sure how we want to handle this backend work from the web UI, doing it as soon as possible and not waiting on cron would be awesome, but we'd definitely need someway to spin this off into separate workers.

damien tournoud’s picture

The only thing we actually need to do is update the gitolite configuration: we don't need to actually create the repository, it will be created automatically during the first push.

Depending on the way we implement that, updating the gitolite configuration, it could be as simple as adding a record in a mongodb database (see #782764: Ensure gitolite can scale to 10k, 100k+ users).

sdboyer’s picture

The only thing we actually need to do is update the gitolite configuration: we don't need to actually create the repository, it will be created automatically during the first push.

Woah, really? Meaning, if gitolite's perms allow it, then it'll just autocreate the repo on initial push?

I clearly need to spend some time digging into gitolite.

mikey_p’s picture

This may be a dumb question since I haven't looked into it, but will this allow commit restriction hooks and hooks for parsing and updating the vc_api logs to be added to the repository when it is created?

dww’s picture

Title: Any (additional) work necessary to map project repos with project UI » Expose project repository on the project UI
Project: Drupal.org infrastructure » Version Control / Project* integration
Version: » 6.x-1.0-rc2
Component: Git » User interface

This issue is getting off track. Y'all are talking about stuff like:
#852334: Add a mechanism to create Git repos on-demand for new projects
#714034: Determine the access control solution for git

*This* issue should really be about making it obvious when you're looking at a project node:
a) if this project has code in version control
b) how to find that code

I think we all agree that the mapping of projects to repos will be based on the project short name, which shouldn't be allowed to change (#781300: option to lock project short name).

So, there's no magic. All this can be completely automated. We no longer need the code from cvs.module to form_alter() the project node form to inject the setting about what directory the code lives in (and all the extra wonky validation to try to get it to match the short name).

What we want here is stuff like a link on the project node itself that points to the Git repo for the project. I'm not sure exactly what the UI of this link would be, but that's what we should figure out and get working here. Some obvious way for people looking at a project node to find the canonical Git repo where that project's code lives. Maybe there's a "Clone this with Git" button/link? Maybe this just links off to the git-instructions tab? Maybe we don't need this at all and just want to focus on #774770: Make a Project Git instructions module?

We could also finally automate the "view this project's code via the web Git browser" -- see #156118: Automatically generate the value of 'Link to webcvs/viewcvs' field for a project for more. I think these are actually separate URLs, but maybe it's actually the same thing. In that case, this issue is probably duplicate and we should just finally work on and resolve #156118 instead...

Thanks,
-Derek

hunmonk’s picture

adding redesign tags

sdboyer’s picture

Priority: Normal » Critical
dww’s picture