Skip to content

Commit

Permalink
final touches
Browse files Browse the repository at this point in the history
  • Loading branch information
j-i-l committed Nov 1, 2024
1 parent 1a96ed1 commit 6afec5c
Show file tree
Hide file tree
Showing 11 changed files with 55 additions and 60 deletions.
4 changes: 2 additions & 2 deletions source/content/lfs/git_data_model/git_data_model.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ But how does the underlying mechanisms and data structures look like?
<i class="fab fa-git"></i>’s data model is based on three main concepts:
{% endif %}

**Blobs (Binary Large Objects) <i class="fa-solid fa-file-binary"></i>** are used to store the contents of files.
**Blobs (Binary Large Objects)** are used to store the contents of files.
{% if page %}
Each blob is identified by a SHA-1 hash of its content, ensuring that identical files are stored only once.
Blobs do not contain any metadata about the file, such as its name or permissions.
Expand Down Expand Up @@ -69,4 +69,4 @@ In summary, <i class="fab fa-git"></i>’s ability to track files and manage cha
By using blobs, trees, and commits, <i class="fab fa-git"></i> ensures that file contents are stored uniquely and changes are tracked accurately.
The staging area and efficient storage techniques like delta compression and packfiles contribute to <i class="fab fa-git"></i>’s performance and reliability as a version control system.
{% endif %}
:::
:::
3 changes: 3 additions & 0 deletions source/content/project_mgmt_tools/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ These platforms offer a range of features that support collaboration, transparen
:maxdepth: 2
./key_features_and_benefits
./key_features_and_benefits_2
./project_management_tools
./research_project_workflow_example
Expand All @@ -18,6 +19,8 @@ These platforms offer a range of features that support collaboration, transparen
<!-- build the page content here -->
```{include} ./key_features_and_benefits.md
```
```{include} ./key_features_and_benefits_2.md
```
```{include} ./project_management_tools.md
```
```{include} ./research_project_workflow_example.md
Expand Down
32 changes: 2 additions & 30 deletions source/content/project_mgmt_tools/key_features_and_benefits.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Key Features and Benefits
## Key Features and Benefits{% if slide %} 1/2{% endif %}
:::{card}
### Version Control with <i class="fab fa-git"></i>'s Feature Branch Workflow
### Version Control with Feature Branch Workflow
{% if page %}
GitHub<i class="fab fa-github"></i> and GitHub<i class="fab fa-gitlab"></i> allow teams to track changes, revert to previous versions, and collaborate seamlessly on code.
This ensures that all modifications are documented, which is crucial for **transparency and accountability**.
Expand Down Expand Up @@ -29,31 +29,3 @@ Pull (<i class="fab fa-github"></i>) and Merge Requests (<i class="fab fa-gitlab
{% endif %}
:::

:::{card}

### Continuous Integration/Continuous Deployment (CI/CD)
{% if page %}
GitHub<i class="fab fa-github"></i> Actions and GitLab<i class="fab fa-gitlab"></i> CI/CD provide automated testing and deployment pipelines. These tools ensure that code changes are tested and validated before being merged, reducing risk of introducing errors and ensuring that the codebase remains stable and reliable.
{% else %}
Automated testing and deployment pipelines reduce risk of errors and ensure codebase stability.
{% endif %}
:::

:::{card}
### Documentation
{% if page %}
Wikis and README files on both platforms support comprehensive documentation. Proper documentation is essential for reproducibility, allowing others to understand and replicate the work.
{% else %}
Comprehensive documentation is essential for reproducibility, allowing others to understand and replicate the work.
{% endif %}
:::

:::{card}

### Collaboration and Communication
{% if page %}
Comments and Discussions on GitHub<i class="fab fa-github"></i> and GitLab<i class="fab fa-gitlab"></i> faciliate communication by allowing users to comment on code, issues, and merge requests. This ensures that team members stay aligned and that key decisions are well-documented.
{% else %}
Facilitate communication by enabling comments on code, issues, and merge requests, keeping team members aligned and ensuring key decisions are well documented.
{% endif %}
:::
30 changes: 30 additions & 0 deletions source/content/project_mgmt_tools/key_features_and_benefits_2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{% if slide %}## Key Features and Benefits 2/2{% endif %}

:::{card}

### Continuous Integration/Continuous Deployment (CI/CD)
{% if page %}
GitHub<i class="fab fa-github"></i> Actions and GitLab<i class="fab fa-gitlab"></i> CI/CD provide automated testing and deployment pipelines. These tools ensure that code changes are tested and validated before being merged, reducing risk of introducing errors and ensuring that the codebase remains stable and reliable.
{% else %}
Automated testing and deployment pipelines reduce risk of errors and ensure codebase stability.
{% endif %}
:::

:::{card}
### Documentation
{% if page %}
Wikis and README files on both platforms support comprehensive documentation. Proper documentation is essential for reproducibility, allowing others to understand and replicate the work.
{% else %}
Comprehensive documentation is essential for reproducibility, allowing others to understand and replicate the work.
{% endif %}
:::

:::{card}

### Collaboration and Communication
{% if page %}
Comments and Discussions on GitHub<i class="fab fa-github"></i> and GitLab<i class="fab fa-gitlab"></i> faciliate communication by allowing users to comment on code, issues, and merge requests. This ensures that team members stay aligned and that key decisions are well-documented.
{% else %}
Facilitate communication by enabling comments on code, issues, and merge requests, keeping team members aligned and ensuring key decisions are well documented.
{% endif %}
:::
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Advanced GitHub<i class="fab fa-github"></i> Features for Project Management
## Advanced <i class="fab fa-github"></i>&<i class="fab fa-gitlab"></i> Features for Project Management

:::{card}
**Project Boards**{% if page %}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
## Example: Paper Review on GitHub<i class="fab fa-github"></i>
## Example: Paper Review on <i class="fab fa-github"></i> or <i class="fab fa-gitlab"></i>

{% if page %}
To demonstrate how <i class="fab fa-git"></i> and GitHub<i class="fab fa-github"></i> can be useful to manage a paper review worklow, we will use as an example a fictional paper written in LaTeX, where multiple authors (or optionally, reviewers) provide and incorporate feedback into the manuscript.
To demonstrate how <i class="fab fa-git"></i> and <i class="fab fa-github"></i> **GitHub** or <i class="fab fa-gitlab"></i> **GitLab** can be useful to manage a paper review worklow, we will use as an example a fictional paper written in LaTeX, where multiple authors (or optionally, reviewers) provide and incorporate feedback into the manuscript.

### Paper Writing Workflow on Github<i class="fab fa-github"></i>
### Paper Writing Workflow on <i class="fab fa-github"></i>/<i class="fab fa-gitlab"></i>
{% else %}
This can consists of the following steps:
{% endif %}

The workflow would typically include the following steps:

1. **Initial Setup**: First authors create a GitHub repository {octicon}`repo` for the paper and share it with co-authors (and reviewers).
1. **Initial Setup**: First authors create a Repository {octicon}`repo` for the paper and share it with co-authors (and reviewers).
2. **Writing/Reviewing Process**: Co-authors review, contribute to the paper, and provide feedback through issues {octicon}`issue-opened;0.8em` and pull requests {octicon}`git-pull-request;0.8em`.
3. **Prioritization**: Authors prioritize and group the feedback, set a timeline for revisions, create a milestone {octicon}`milestone;0.8em` (e.g., submission), and assign tasks to co-authors.
4. **Response**: Authors revise the paper and commit changes to the repository.
Expand Down
20 changes: 4 additions & 16 deletions source/content/submodules/gotchas.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
## Gotchas for <i class="fab fa-git"></i> Submodules

1. **Submodules Do Not Update Automatically** ⚠️:
{% if slide %}
Submodules are not automatically updated to the latest commit.
{% else %}
1. **Submodules Do Not Update Automatically** ⚠️: {% if slide %}Submodules are not automatically updated to the latest commit.{% else %}
When you clone a repository that contains submodules, the latter are not automatically updated to the latest commit. You need to run `git submodule update` or use the `--recurse-submodules` option when cloning to ensure they are initialized and updated.
{% endif %}

Expand Down Expand Up @@ -34,23 +31,14 @@ When you check out a submodule, it is usually in a "detached HEAD" state, genera

{% endif %}

4. **Submodule URLs Can Change** 🔗:
{% if slide %}
You might need to update the `.gitmodules` file manually.
{% else %}
4. **Submodule URLs Can Change** 🔗:{% if slide %} You might need to update the `.gitmodules` file manually. {% else %}
If the URL of a submodule repository changes, you must update the `.gitmodules` file in the parent repository. Failing to do so can lead to broken links when trying to update or clone the submodule.
{% endif %}

5. **Cloning with Submodules Requires Extra Steps** 🛠️:
{% if slide %}
Remember to use the `--recurse-submodule` option when cloning.
{% else %}
5. **Cloning with Submodules Requires Extra Steps** 🛠️:{% if slide %} Remember to use the `--recurse-submodule` option when cloning. {% else %}
When cloning a repository with submodules, you need to use the `--recurse-submodules` option or run `git submodule init` and `git submodule update` afterward. Forgetting these steps can lead to missing submodule content.
{% endif %}

6. **Submodules Can Increase Complexity** 🌀:
{% if slide %}
This might be confusing for newcomers.
{%else%}
6. **Submodules Can Increase Complexity** 🌀:{% if slide %} This might be confusing for newcomers. {%else%}
Using submodules can add complexity to your project structure. If not managed properly, it can lead to confusion about which version of a submodule is being used and how it relates to the parent repository.
{% endif %}
4 changes: 0 additions & 4 deletions source/content/submodules/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@
{% if slide %}
<!-- BUILDING THE SLIDES -->

- A [<i class="fab fa-git"></i> submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) <i class="fa-solid fa-folder-tree"></i> is a repository within another repository.
- It helps manage external repositories in your main project.
- They are useful for including third-party libraries or separately maintained dependencies.

```{toctree}
:maxdepth: 1
:hidden:
Expand Down
7 changes: 6 additions & 1 deletion source/content/submodules/what_are_submodules.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
## What are <i class="fab fa-git"></i> Submodules <i class="fa-solid fa-folder-tree"></i>?

{% if slide %}
- A [<i class="fab fa-git"></i> submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) <i class="fa-solid fa-folder-tree"></i> is a **repository within another repository**.
- It helps to **manage external repositories in your main project**.
- They are useful for **including third-party libraries or separately maintained dependencies**.
{% else %}
A <i class="fab fa-git"></i> submodule is essentially a repository embedded within another repository.
It allows you to include and manage external repositories within your main project.
This is particularly useful for integrating third-party libraries or dependencies that are maintained separately.
{% endif %}

:::{note}
Once a submodule is initialized and updated, its content appears as a regular folder inside the parent repository.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Where <i class="fab fa-git"></i> and its remote services can help
## Where <i class="fab fa-git"></i> and its Remote Services Can Help

{% if slide %}
<!-- BUILDING THE SLIDES -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
- **Reproducibility** is achieved when an analysis can be repeated using the same data, yielding the same results.
- **Replicability** occurs when an analysis with different data on the same study subject leads to the same conclusions.

> We focus on a strict interpretation of reproducibility: the same implementation of a method applied to the exact same data must produce the same result.
> We focus on a strict interpretation of reproducibility: **The same implementation of a method applied to the exact same data must produce the same result**.
- This approach is common in computer science and can be supported by tools like <i class="fab fa-git"></i> and related remote services.

Expand Down

0 comments on commit 6afec5c

Please sign in to comment.