Skip to content

Commit 64f24bb

Browse files
alilleybrinkerj-lanson
authored andcommitted
chore: 3.9.0 release announcement post
Signed-off-by: Andrew Lilley Brinker <[email protected]>
1 parent ec6a5cf commit 64f24bb

File tree

1 file changed

+126
-0
lines changed

1 file changed

+126
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
---
2+
title: Hipcheck 3.9.0 Release
3+
authors:
4+
- Andrew Lilley Brinker
5+
extra:
6+
author_img: "images/authors/andrew.jpg"
7+
---
8+
9+
Introducing Hipcheck 3.9.0, with bugfixes for plugin downloading and a new Git
10+
commit and diff parser.
11+
12+
<!-- more -->
13+
14+
---
15+
16+
## 💬&nbsp;&nbsp;A New Git Commit and Diff Parser
17+
18+
One of the key jobs that the `mitre/git` plugin for Hipcheck needs to do is
19+
parse Git commits and diffs. This plugin, which is a dependency of several
20+
other plugins we ship today, previously used a hand-rolled parser built using
21+
[`nom`], a popular Rust library for writing parser combinators. This had been
22+
tested against a wide array of open source Git repositories to identify and
23+
fix bugs, but of course for a parser working with something as flexible as the
24+
Git commit and diff format, there were still more to find. Over time, we'd
25+
identified this parser as a priority for replacement. It just didn't make sense
26+
to continue investing effort toward improving our own parser when others, more
27+
battle-tested, exist out in the world.
28+
29+
In this release, we've transitioned from our hand-rolled parser to the one
30+
implemented by the [Gitoxide] project. Gitoxide is a project to reimplement Git
31+
in Rust, and their [`gix`] crate includes a Git commit and diff parser that
32+
works better than the one we'd written. In the short term, it's also slightly
33+
slower, though we believe in prioritizing correctness first, and we can work on
34+
improving its performance in the future.
35+
36+
With this new parser in place, we expect fewer Git parsing bugs in the future,
37+
and therefore more successful analyses of Git repository histories!
38+
39+
## 📦&nbsp;&nbsp;Improved Plugin Downloading
40+
41+
One of the key tasks Hipcheck does before it starts analyses is to resolve the
42+
set of plugins requested by the user in their policy file, and all the
43+
dependencies of those plugins. To do this, it downloads the plugin artifacts
44+
for the requested version and the current architecture based on each plugin's
45+
download manifest, placing them in a local plugin cache.
46+
47+
In 3.9.0, we've made two improvements to this process. First, we ensure we
48+
delete unused materials after copying out the stuff we need to run a plugin.
49+
Second, we ensure that we skip downloading plugins which already exist in the
50+
cache. This means less work over the network, and a faster plugin execution
51+
time when you reuse a policy you've run before.
52+
53+
## 👀&nbsp;&nbsp;What's in the Release?
54+
55+
| Package | What is it? | New Version |
56+
|:--------------------|:------------|:------------|
57+
| `hc` | Hipcheck | 3.9.0 |
58+
| `mitre/git` | Plugin | 0.2.0 |
59+
| `mitre/activity` | Plugin | 0.2.0 |
60+
| `mitre/affiliation` | Plugin | 0.2.0 |
61+
| `mitre/churn` | Plugin | 0.2.0 |
62+
| `mitre/entropy` | Plugin | 0.2.0 |
63+
| `mitre/identity` | Plugin | 0.2.0 |
64+
65+
The non-`mitre/git` plugins were bumped because they depend on `mitre/git` and
66+
are now using the new version.
67+
68+
## 🫸&nbsp;&nbsp;Things Pushed to Later Releases
69+
70+
We've hoped land the implementations for [RFD #9] and [RFD #10] in 3.9.0, but
71+
they're not ready yet, and so we're pushing them to the 3.10.0 release.
72+
73+
We're also still working on integrating plugins into the `hc ready` command, to
74+
ensure it provides clearer and more accurate feedback indicating when Hipcheck
75+
is ready to&nbsp;run.
76+
77+
## 🗺️&nbsp;&nbsp;How to Get Involved
78+
79+
We're always looking for new contributors! If you'd like to learn more about
80+
Hipcheck and get involved in contributing, please checkout our [Roadmap] and
81+
feel free to get in touch with us through our [Discussions] board!
82+
83+
## ⭐️&nbsp;&nbsp;Thank You to Our Contributors and Supporters
84+
85+
As always, I want to say a big "Thank you!" to everyone who supports the
86+
project at MITRE, to CISA for [sponsoring our current work on it][cisa_hipcheck],
87+
to our prior government sponsors who have helped advance Hipcheck, and to
88+
everyone who has contributed, given feedback, or encouraged us in building it.
89+
90+
Thank you especially to the contributors for this release:
91+
92+
- [Julian Lanson], Hipcheck Development Team Lead at MITRE
93+
- [Patrick Casey], Hipcheck Developer at MITRE
94+
- [Michael Chernicoff], Hipcheck Developer at MITRE
95+
- [Devin Lake], Hipcheck Developer at MITRE
96+
97+
[hc_3_6_2]: https://github.com/mitre/hipcheck/releases/tag/hipcheck-v3.6.2
98+
[policy file]: @/docs/guide/config/policy-file.md
99+
[RFD #10]: @/docs/rfds/0010-submit-chunking.md
100+
[RFD #9]: @/docs/rfds/0009-batch-queries.md
101+
[`mitre/activity`]: @/docs/guide/plugins/mitre-activity.md
102+
[`mitre/affiliation`]: @/docs/guide/plugins/mitre-affiliation.md
103+
[`mitre/binary`]: @/docs/guide/plugins/mitre-binary.md
104+
[`mitre/churn`]: @/docs/guide/plugins/mitre-churn.md
105+
[`mitre/entropy`]: @/docs/guide/plugins/mitre-entropy.md
106+
[`mitre/fuzz`]: @/docs/guide/plugins/mitre-fuzz.md
107+
[`mitre/git`]: @/docs/guide/plugins/mitre-git.md
108+
[`mitre/github`]: @/docs/guide/plugins/mitre-github.md
109+
[`mitre/identity`]: @/docs/guide/plugins/mitre-identity.md
110+
[`mitre/linguist`]: @/docs/guide/plugins/mitre-linguist.md
111+
[`mitre/npm`]: @/docs/guide/plugins/mitre-npm.md
112+
[`mitre/review`]: @/docs/guide/plugins/mitre-review.md
113+
[`mitre/typo`]: @/docs/guide/plugins/mitre-typo.md
114+
[Julian Lanson]: https://github.com/j-lanson
115+
[Patrick Casey]: https://github.com/patrickjcasey
116+
[Michael Chernicoff]: https://github.com/mchernicoff
117+
[Devin Lake]: https://github.com/devin-b-lake
118+
[Cal Stepanian]: https://github.com/cstepanian
119+
[Nino Agrawal]: https://github.com/ninaagrawal
120+
[Aisha Mohammed]: https://github.com/aamohd
121+
[cisa_hipcheck]: https://www.cisa.gov/news-events/news/continued-progress-towards-secure-open-source-ecosystem
122+
[Roadmap]: https://github.com/orgs/mitre/projects/33/views/15
123+
[Discussions]: https://github.com/mitre/hipcheck/discussions
124+
[Gitoxide]: https://github.com/GitoxideLabs/gitoxide
125+
[`gix`]: https://crates.io/crates/gix
126+
[`nom`]: https://crates.io/crates/nom

0 commit comments

Comments
 (0)