Difference between revisions of "GPG guide/Repository and Publishing"

From LibrePlanet
Jump to: navigation, search
(stated what is dev and what is live repo)
 
(3 intermediate revisions by 3 users not shown)
Line 4: Line 4:
  
 
The repository can be checked out via the following command:
 
The repository can be checked out via the following command:
<code>git clone git@vcs.fsf.org:enc.git --recursive</code>. '''After checking out, make sure you are on the master branch of the repository.'''
+
<code>git clone git@vcs.fsf.org:enc.git</code>. '''After checking out, make sure you are on the master branch of the repository.'''
  
'''NOTE:''' The ''--recursive'' option will checkout this projects submodule, which for this project is used for commiting static content into static.fsf.org. If you forget the --recursive option, you can get the submodule later with the following command: <code>git submodule update --init</code>
+
== The static submodule ==
  
== The static submodule ==
+
The 'static' directory is now a part of the main repo itself, rather than a separate repo. This helps with the portability of the site, so it can be run anywhere, without reliance upon a shared (or unshared) resource at static.fsf.org.
  
The static assets for the email self-defense guide are kept in another repository, enc-static.  In order to add new files to it, i.e. infographic translations, commits must be made to this repository, and the updated submodule must be commited to the enc repository.  The workflow resembles the following:
+
To remove the old Git submodule, you'll need to run the following in your enc/ directory:
  
 
<pre>
 
<pre>
cd static/ # enter the enc-static repository
+
git submodule deinit static
git checkout master # the submodule is in a detached state, go to master HEAD
+
git pull
touch img/es/donate.png # make a change
+
rm -rf .git/modules/static/
git add img/es/donate.png
 
git commit -m "es: Added donate image."
 
git push
 
cd .. # back to enc repository
 
git add static
 
git commit -m "Bump submodule." # Commit new version of static submodule
 
git push
 
 
</pre>
 
</pre>
 
It's important to remember that the static/ directory is another repository and you must commit to it separately from enc.  It is also important to maintain the proper order of operations, as demonstrated above.  Do not push a commit to enc that bumps the submodule if the new commits to enc-static have not been pushed.  Always push to enc-static first.
 
 
After running `git pull`, it's good to run `git submodule update` to get the latest static assets.
 
  
 
== Checking out the project for read-only access ==
 
== Checking out the project for read-only access ==
Line 33: Line 22:
 
You may want to do this if you plan to create diffs and send them to the FSF as suggested edits, rather than editing directly. You do not need permission for this.
 
You may want to do this if you plan to create diffs and send them to the FSF as suggested edits, rather than editing directly. You do not need permission for this.
  
<code>git clone git@vcs.fsf.org:enc.git</code>
+
<code>git clone https://vcs.fsf.org/git/enc.git/</code>
  
  
Line 41: Line 30:
  
 
* vcs.fsf.org:enc.git
 
* vcs.fsf.org:enc.git
** When master is pushed to, http://enc-dev0.fsf.org is updated.
+
<strike>** When master is pushed to, http://enc-dev0.fsf.org is updated.</strike>
* vcs.fsf.org:enc-static.git (a submodule of the vcs.fsf.org:enc.git, it is found in the static/ directory of its parent repository).
+
* <strike>vcs.fsf.org:enc-static.git (previously a submodule of the vcs.fsf.org:enc.git, it was found in the static/ directory of its parent repository).
** When master is pushed to, http://static.fsf.org/nosvn/enc/enc-dev0
+
** When master is pushed to, http://static.fsf.org/nosvn/enc/enc-dev0</strike>
  
 
== Pushing to the Live Instance ==
 
== Pushing to the Live Instance ==
Line 51: Line 40:
 
Due to some poor design decisions (made by Zak) early on in this project, a clean, git-only workflow isn't possible for publishing right now. Instead, to publish:
 
Due to some poor design decisions (made by Zak) early on in this project, a clean, git-only workflow isn't possible for publishing right now. Instead, to publish:
  
* Check out the dev repo *and* the live repo on the same computer. If you already have them, make sure they are both up to date.
+
* Check out the dev repo (enc) *and* the live repo (enc-live) on the same computer. If you already have them, make sure they are both up to date.
 
* Manually copy the directories for the languages you want to publish from the dev to the live site, but don't push yet
 
* Manually copy the directories for the languages you want to publish from the dev to the live site, but don't push yet
* Test the new or modified pages on your own computer. To do this, you'll need to set up a local server. See the instructions at https://libreplanet.org/wiki/GPG_guide/Setting_Up_Your_Local_Development_Environment . Make sure the local server is serving your checked out copy of the live site, not the dev site.
+
* Test the new or modified pages on your own computer. To do this, you'll need to set up a local server. See the instructions at https://libreplanet.org/wiki/GPG_guide/Setting_Up_Your_Local_Development_Environment. Make sure the local server is serving your checked out copy of the live site, not the dev site.
 
* Push your updated live repo.
 
* Push your updated live repo.
  

Latest revision as of 11:25, 15 December 2022

Checkout Out Project for editing/translating

To do this, you'll need to have the FSF tech team give you access. See the instructions at https://libreplanet.org/wiki/GPG_guide/Translation_Guide. If you want to download the repository but do not intend to directly edit the master copy, see the instructions below.

The repository can be checked out via the following command: git clone git@vcs.fsf.org:enc.git. After checking out, make sure you are on the master branch of the repository.

The static submodule

The 'static' directory is now a part of the main repo itself, rather than a separate repo. This helps with the portability of the site, so it can be run anywhere, without reliance upon a shared (or unshared) resource at static.fsf.org.

To remove the old Git submodule, you'll need to run the following in your enc/ directory:

git submodule deinit static
git pull
rm -rf .git/modules/static/

Checking out the project for read-only access

You may want to do this if you plan to create diffs and send them to the FSF as suggested edits, rather than editing directly. You do not need permission for this.

git clone https://vcs.fsf.org/git/enc.git/


The Hooks

The repository has the following hooks:

  • vcs.fsf.org:enc.git

** When master is pushed to, http://enc-dev0.fsf.org is updated.

  • vcs.fsf.org:enc-static.git (previously a submodule of the vcs.fsf.org:enc.git, it was found in the static/ directory of its parent repository).

Pushing to the Live Instance

NOTE: Access to the live site is restricted, access is given on an as needed basis. Anyone can watch commits to it on the Web at https://vcs.fsf.org/?p=enc-live.git

Due to some poor design decisions (made by Zak) early on in this project, a clean, git-only workflow isn't possible for publishing right now. Instead, to publish:

  • Check out the dev repo (enc) *and* the live repo (enc-live) on the same computer. If you already have them, make sure they are both up to date.
  • Manually copy the directories for the languages you want to publish from the dev to the live site, but don't push yet
  • Test the new or modified pages on your own computer. To do this, you'll need to set up a local server. See the instructions at https://libreplanet.org/wiki/GPG_guide/Setting_Up_Your_Local_Development_Environment. Make sure the local server is serving your checked out copy of the live site, not the dev site.
  • Push your updated live repo.

This is the more "correct" method, which you should not use right now, but which will again be appropriate some day.

  • Add the following remote repository: git remote add live git@vcs.fsf.org:enc-live.git
  • When you are ready to push to the live site, use: git push live master
  • Your changes will be then pushed to http://emailselfdefense.fsf.org