Hi Everyone,

This was a good week. We got a number of patches from the community and 
four different submitters introduced breaks. I needed to refine at least 
three patches. I think its a good time to share my philosophy, and open it 
up for debate.

First, Master needs to be mostly stable. Users expect it and we advertise 
it. Everything that hits master is reviewed and smoked tested before 
rigorous, multi-platform testing. If there's a break, then we need to catch 
it before the first user's 'git pull'.

Second, stagnation is a killer. Before Wei turned the library over to the 
community, the library was suffering stagnation. Wei did not have time to 
maintain it, and there was no one available for the duties.

Third, perfection is the enemy of the good. We want perfect code but its 
not a realistic goal. If we waited for perfect code then the project would 
stagnate and eventually die. We will pursue perfection and catch excellence.

Fourth, you can't make an omelet with breaking eggs. If someone is not 
breaking things, then they are not getting anything done. Check-ins and the 
occasional break tells me the code is moving and not stagnate.

Fifth, we learn from our mistakes. If you submit a bad patch, then don't 
dwell on it; instead, simply learn from it. Pick yourself up by your 
bootstraps and keep moving forward.

Sixth, learning from mistakes and is not license to lower expectations. 
Each time I broke the code, I looked beyond the instance problem and 
questioned why it happened in the first place. I then placed controls to 
stop future breaks. Of all the controls that can be placed, we achieve the 
highest yield from cryptest.sh and additional self tests.

I've been tracking bug reports and performance of cryptest.sh. cryptest.sh 
detected 78% of the bugs before users experienced them. The script caught 
every problem introduced this week. If you are submitting patches, then it 
would behoove you to run cryptest.sh on your integrated changes or risk 
being tarred and feathered by users.

Seventh, my role in all this is a steward. The library belongs to Wei and 
the community. My job is simple: look out for the library and its users. 
There are at least five others who can do what I do. I happen to be the 
most forward facing because stagnation is a killer.

With all that said, I think things are working as expected and we are 
hitting our stride. The code is moving forward at a good pace, and each 
release gets more stable. We are catching mistakes before users see them. 
We are pursuing perfection and we have captured excellence.

Any questions, thoughts or objections?


You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to cryptopp-users-unsubscr...@googlegroups.com.
More information about Crypto++ and this group is available at 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cryptopp-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to