Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add introduction content and adjust linting #28

Merged
merged 4 commits into from
May 8, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .vale.ini
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ Packages = proselint, write-good, alex
BasedOnStyles = Vale, proselint, write-good, alex

write-good.TooWordy = NO
write-good.Passive = NO
8 changes: 4 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@ build-book-dev.shell = """
# non-zero return when there is more than one
# line of output from vale.
vale-checks.shell = """
vale sync && \
output=$(vale ./src/almanac) && \
if [ $(echo $output | wc -l) -gt 1 ]; then \
echo $output && exit 1; \
vale sync || true;
output=$(vale ./src/almanac) ||
if [ $(echo "$output" | wc -l) -gt 1 ]; then
echo "$output"; exit 1;
fi
"""

Expand Down
2 changes: 2 additions & 0 deletions src/almanac/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
# Book settings
title: The Software Gardening Almanac
author: The Software Gardening Community
logo: |
"https://raw.githubusercontent.com/software-gardening/brand/main/logo/logo.png"

#######################################################################################
# Execution settings
Expand Down
3 changes: 3 additions & 0 deletions src/almanac/_static/custom.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.navbar-brand img {
max-width:60%;
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/almanac/assets/software-lifecycle.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/almanac/assets/xkcd_dependency.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
69 changes: 69 additions & 0 deletions src/almanac/introduction.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,72 @@
# Welcome

Welcome to the Software Gardening Almanac, an open-source handbook of applied guidance and tools for sustainable software development and maintenance.

## Inspiration

```{figure} assets/software-lifecycle.png
d33bs marked this conversation as resolved.
Show resolved Hide resolved
---
alt: A software file shown in sequences with symbols indicating creation, growth,
and decay.
---
_Software is created, grows, and decays over time._
```

Software undergoes time-based cycles phases that are not well understood or cultivated.
d33bs marked this conversation as resolved.
Show resolved Hide resolved
Why does software grow quickly only to decay just as fast?
How do software bugs seem to appear in the most unlikely scenarios?
d33bs marked this conversation as resolved.
Show resolved Hide resolved

These cycles follow patterns from life: software is created, grows, decays, and so on (sometimes in surprising or seemingly unpredictable ways).
Software is also connected within a complex system of relationships (similar to ecology).
d33bs marked this conversation as resolved.
Show resolved Hide resolved
The Software Gardening Almanac posits we can understand these software lifecycle patterns and complex relationships in order to build tools which sustain or maintain their development long-term.

> _"The ‘planetary garden’ is a means of considering ecology as the integration of humanity – the gardeners – into its smallest spaces._
d33bs marked this conversation as resolved.
Show resolved Hide resolved
> _Its guiding philosophy is based on the principle of the ‘garden in motion’: do the most __for__, the minimum __against__."_
> \- Gilles Clément

The content here is inspired by ecological systems (for example, as in [_planetary gardening_](https://www.architectural-review.com/essays/in-practice/in-practice-gilles-clement-on-the-planetary-garden)).
d33bs marked this conversation as resolved.
Show resolved Hide resolved
We also are galvanized by the [_scientific method_](https://en.wikipedia.org/wiki/Scientific_method), and [_almanacs_](https://en.wikipedia.org/wiki/Almanac) (or earlier [_menologia rustica_](https://en.wikipedia.org/wiki/Menologia_rustica)) in documenting, expecting, and optimizing how we plan for time-based changes in agriculture (among other practices and traditions).

```{figure} assets/almanac-influencing-software.png
---
height: 270px
alt: A book shown as influencing software within the cycle of time.
---
_Almanacs help us understand and influence the impacts of time on the things we grow._
```

Almanacs within the context of computers can be interpreted as meta-software which use objective, shared experience to help encourage growth and avoid unwanted decay.
d33bs marked this conversation as resolved.
Show resolved Hide resolved
The Software Gardening Almanac helps share similar knowledge on cultivation and augmentation in reaction or preparation for change in order to nurture software (and software practitioners) for long periods of time.
d33bs marked this conversation as resolved.
Show resolved Hide resolved
We aspire to define, practice, and continually improve a craft of _software gardening_ to nourish existing or yet to be software projects and embrace and more resilient future.
d33bs marked this conversation as resolved.
Show resolved Hide resolved

## Motivation

```{figure} assets/xkcd_dependency.png
---
height: 330px
alt: \'Dependency\' comic by Randall Munroe, XKCD.
---
_We depend on a delicate network of software which changes over time.<br>(Image source: ['Dependency' comic by Randall Munroe, XKCD](https://xkcd.com/2347/))_
```

Our world is surrounded by systems of software which enable and enhance life.
d33bs marked this conversation as resolved.
Show resolved Hide resolved
These systems are both invisible and sometimes brittle, breaking in surprising ways (for example, beneath uneven pressures as in the above XKCD comic).
At the same time, [loose coupling](https://en.wikipedia.org/wiki/Loose_coupling) of these software systems also forms the basis of innovation through multidimensional, [emergent](https://en.wikipedia.org/wiki/Emergence) growth patterns.
We seek to embrace these software systems which are innately in motion, embracing diversity without destroying it to perpetuate discovery and enable future life.
d33bs marked this conversation as resolved.
Show resolved Hide resolved

> _"Start where you are. Use what you have. Do what you can."_
> \- Arthur Ashe

We suggest reading or using this content however it best makes sense to a reader.
Just as with gardening, sometimes the best thing to do is jump in!
Each section is structured in a modular fashion, providing insights without uncited prerequisites.
d33bs marked this conversation as resolved.
Show resolved Hide resolved
Links and other reference materials for further reading where beneficial (please let us know if we can improve!).
d33bs marked this conversation as resolved.
Show resolved Hide resolved

## Who's this for?

> _"We'll share stories from the heart. All are welcome here."_
> \- Alexandra Penfold

The Software Gardening Almanac is designed to be used by developers of any kind.
d33bs marked this conversation as resolved.
Show resolved Hide resolved
When we say _developers_ here we mean anyone engaging in clarifying a vision towards a goal with software (including scientists, engineers, project leads, managers, etc).
d33bs marked this conversation as resolved.
Show resolved Hide resolved
The content is intentionally structured to engage readers with pragmatic ideas, keeping the barrier to entry low.
d33bs marked this conversation as resolved.
Show resolved Hide resolved
5 changes: 5 additions & 0 deletions styles/config/vocabularies/almanac/accept.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
BSSw
Todo
menologia
rustica
Gilles
Penfold
uncited