Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit ceb5651

Browse files
authoredJan 20, 2023
Merge pull request #152 from secure-systems-lab/retired-projects
Change handling of retired projects
2 parents dac582b + d701101 commit ceb5651

15 files changed

+157
-6
lines changed
 

‎.github/workflows/test_yaml.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
- name: Install dependencies
2121
run: |
2222
python -m pip install --upgrade pip
23-
python -m pip install yamale colorama
23+
python -m pip install -r requirements.txt
2424
- name: Test yaml
2525
run: |
2626
_test/test_yaml.py

‎.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,6 @@ node_modules
4646
# Jekyll
4747
.jekyll-metadata
4848
.jekyll-cache
49+
50+
# Ruby
51+
.bundle

‎_data/data.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -701,15 +701,19 @@ projects:
701701
statuses:
702702
- &stealth
703703
name: "Stealth Mode"
704+
tag: "stealth"
704705
description: "Shhhh. We're still figuring things out internally."
705706
- &starting
706707
name: <span style="color:green">Sprouting</span>
708+
tag: "sprouting"
707709
description: "We're ready for use. Early adopters wanted!"
708710
- &adopted
709711
name: <span style="color:gold">Adopted</span>
712+
tag: "adopted"
710713
description: "Many people are using this. Join them!"
711714
- &retired
712715
name: <span style="color:silver">Retired</span>
716+
tag: "retired"
713717
description: "We learned what we can and are not actively developing anymore."
714718

715719
tags:
@@ -744,10 +748,10 @@ projects:
744748
name: "Testing Tools"
745749
anchor: testing_tools
746750

747-
intro: "Though all of SSL’s research initiatives—past and present—revolve
748-
around ensuring secure operation of computer systems, the specific areas
749-
addressed by the team vary greatly. Initiatives are grouped into
750-
the following categories:"
751+
intro: "Though all of SSL’s research initiatives—<a href='retired-projects'>past</a>
752+
and <a href='projects'>present</a>—revolve around ensuring secure operation
753+
of computer systems, the specific areas addressed by the team vary greatly.
754+
Initiatives are grouped into the following categories:"
751755

752756
projects:
753757
- &tuf

‎_test/data/test_01_projects_vs_project.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ projects:
2626
statuses:
2727
- &stealth
2828
name: "Stealth Mode"
29+
tag: "stealth"
2930
description: "Shhhh. We're still figuring things out internally."
3031

3132
tags:

‎_test/data/test_02_project_list_vs_str.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ projects:
2626
statuses:
2727
- &stealth
2828
name: "Stealth Mode"
29+
tag: "stealth"
2930
description: "Shhhh. We're still figuring things out internally."
3031

3132
tags:

‎_test/data/test_03_misspelled_alias.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ projects:
2626
statuses:
2727
- &stealth
2828
name: "Stealth Mode"
29+
tag: "stealth"
2930
description: "Shhhh. We're still figuring things out internally."
3031

3132
tags:

‎_test/data/test_04_unescaped_quotes.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ projects:
2626
statuses:
2727
- &stealth
2828
name: "Stealth Mode"
29+
tag: "stealth"
2930
description: "Shhhh. We're still figuring things out internally."
3031

3132
tags:

‎_test/data/test_05_alias_instead_of_str.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ projects:
2626
statuses:
2727
- &stealth
2828
name: "Stealth Mode"
29+
tag: "stealth"
2930
description: "Shhhh. We're still figuring things out internally."
3031

3132
tags:

‎_test/data/test_data.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ projects:
2626
statuses:
2727
- &stealth
2828
name: "Stealth Mode"
29+
tag: "stealth"
2930
description: "Shhhh. We're still figuring things out internally."
3031

3132
tags:

‎_test/yamale_schema.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ person:
2929
since: any(int(min=2010,max=2025), str())
3030
interests: str()
3131
photo: str()
32-
interests: str()
3332
publications: list(include('person_publication'), required=False)
3433
deployments: str(required=False)
3534

@@ -59,6 +58,7 @@ proj_person:
5958

6059
status:
6160
name: str()
61+
tag: str()
6262
description: str()
6363

6464
tag:

‎js/project_tags.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55

66
// Populate a master hash with the mapping of tag_name=>project_name
77
{% for project in site.data.data.projects.project_cards %}
8+
{% if project.status.tag == "retired" %}
9+
{% continue %}
10+
{% endif %}
811
{% for tag in project.tags %}
912
mapTagToAnchor( '{{ tag.anchor }}', '{{ project.anchor }}');
1013
mapTagToPrettyName('{{ tag.anchor }}', '{{ tag.name }}');

‎js/retired_project_tags.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
---
3+
4+
{% include filter_tags_preamble.js %}
5+
6+
// Populate a master hash with the mapping of tag_name=>project_name
7+
{% for project in site.data.data.projects.project_cards %}
8+
{% if project.status.tag != "retired" %}
9+
{% continue %}
10+
{% endif %}
11+
{% for tag in project.tags %}
12+
mapTagToAnchor( '{{ tag.anchor }}', '{{ project.anchor }}');
13+
mapTagToPrettyName('{{ tag.anchor }}', '{{ tag.name }}');
14+
{% endfor %}
15+
{% endfor %}
16+
17+
{% include filter_tags.js pagename='project' %}
18+

‎projects.html

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212

1313
<div class="projects">
1414
{% for project in site.data.data.projects.project_cards %}
15+
{% if project.status %}
16+
<!-- FIXME: do we ever not have project status associated? -->
17+
{% if project.status.tag == "retired" %}
18+
{% continue %}
19+
{% endif %}
20+
{% endif %}
1521
<div class="project">
1622
<a class="anchor" name="{{ project.anchor }}"></a>
1723

@@ -84,6 +90,17 @@ <h3><a href="#{{ project.anchor }}"> {{ project.name | size_upcase }} </a></h3>
8490
</ul>
8591
</div>
8692
{% endfor %}
93+
<div class="project">
94+
<p>
95+
During its tenure, the Secure Systems Laboratory has developed, nurtured, and deployed a number of technologies,
96+
which have been sunsetted. These projects addressed password protection, secure experimental testbeds, the
97+
factors that influence developer perceptions, as well as a vehicle to securely share (and acquire) donated computing
98+
resources from desktops, laptops, or smartphones that in some ways anticipated the growth of cloud computing. Though
99+
these technologies are no longer being actively developed, the resources generated by these projects can still
100+
largely be accessed. You can learn more about these retired technologies by clicking <a
101+
href="retired-projects">here</a>.
102+
</p>
103+
</div>
87104
</div>
88105

89106
<div id="action-flash" class="fade-out"></div>

‎requirements.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
colorama==0.4.6
2+
PyYAML==6.0
3+
yamale==4.0.4

‎retired-projects.html

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
---
2+
title: Retired Projects
3+
subnav: retired-projects
4+
layout: default
5+
---
6+
7+
<link rel="stylesheet" href="{{ site.baseurl }}css/projects.css"></link>
8+
9+
<div class="intro">{{ site.data.data.projects.intro }}</div>
10+
11+
<ul class="toc" id="tags-toc"></ul>
12+
13+
<div class="projects">
14+
{% for project in site.data.data.projects.project_cards %}
15+
{% if project.status %}
16+
<!-- FIXME: do we ever not have project status associated? -->
17+
{% if project.status.tag != "retired" %}
18+
{% continue %}
19+
{% endif %}
20+
{% endif %}
21+
<div class="project">
22+
<a class="anchor" name="{{ project.anchor }}"></a>
23+
24+
<div class="title-bar">
25+
<h3><a href="#{{ project.anchor }}"> {{ project.name | size_upcase }} </a></h3>
26+
<div class="link-list">
27+
<div class="press-link">
28+
{% capture press_projects %}{{ site.data.data.press.presses | map: 'project' | map: 'anchor' }}{% endcapture %}
29+
{% if press_projects contains project.anchor %}
30+
<a href="/press?filter={{ project.anchor }}">(press)</a>
31+
{% endif %}
32+
</div>
33+
<div class="pubs-link">
34+
{% capture pub_projects %}{{ site.data.data.publications.publications | map: 'project' | map: 'anchor' }}{% endcapture %}
35+
{% if pub_projects contains project.anchor %}
36+
<a href="/publications?filter={{ project.anchor }}">(publications)</a>
37+
{% endif %}
38+
</div>
39+
<div class="web-link">
40+
{% if project.site %}
41+
<a href="{{ project.site }}">(website)</a>
42+
{% endif %}
43+
</div>
44+
</div>
45+
{% if project.status %}
46+
<span class="status tooltip-wrapper"> {{ project.status.name }}
47+
<div class="tooltip"> {{ project.status.description }} </div>
48+
</span>
49+
{% endif %}
50+
</div>
51+
{% if project.tags %}
52+
<div class="tags">
53+
{{ project.tags | map: 'name' | array_to_sentence_string }}
54+
</div>
55+
{% endif %}
56+
57+
<img class="image" src="{{ project.image }}"></img>
58+
59+
<div class="description"><p>
60+
{{ project.description }}
61+
</p></div>
62+
63+
<ul>
64+
{% if project.products %}
65+
<li>
66+
<span class="header">Products: </span>
67+
<span class="products">{{ project.products }}</span>
68+
</li>
69+
{% endif %}
70+
71+
{% if project.people %}
72+
<br />
73+
<li><div class="people">
74+
<span class="header">People: </span>
75+
{% assign personLinks = '' | split:':' %}
76+
{% for person in project.people %}
77+
{% if person == nil %}
78+
{% capture personLink %}<span style="color: red;">NAME MISSING</span>{% endcapture %}
79+
{% else %}
80+
{% assign defaultLink = "people#" | append: person.anchor %}
81+
{% capture personLink %}{% if person.link or person.anchor %}<a class={% if
82+
person.internal %}"internal"{% else %}"external"{% endif %} href="{{ person.link | default: defaultLink}}">{% endif %}{{ person.name }}{% if person.link %}</a>{% endif %}{% endcapture %}
83+
{% endif %}
84+
{% assign personLinks = personLinks | push: personLink %}
85+
{% endfor %}
86+
87+
{{ personLinks | array_to_sentence_string }}
88+
</div></li>
89+
{% endif %}
90+
</ul>
91+
</div>
92+
{% endfor %}
93+
</div>
94+
95+
<div id="action-flash" class="fade-out"></div>
96+
97+
<script src="{{ site.baseurl }}js/retired_project_tags.js"></script>

0 commit comments

Comments
 (0)
Please sign in to comment.