Introducing the SteemCommunity Organization
Repository
https://github.com/SteemCommunity/steem
Currently, most development on the Steem blockchain is done by Steemit Inc. in their steemit/steem repository. This makes it hard for outside developers to produce patches, as continuous integration is disabled and Steemit Inc. developers don't always have time to look at every pull request. And if the developer wants to submit their changes to Utopian, they are out of luck.
So for the last days, I was busy creating a community repository for the Steem blockchain code, complete with continuous integration, tests, and documentation.
Test coverage is automatically reported and creating additional tests for the blockchain is encouraged.
Many checks are performed to ensure that code quality is up to par.
The plan for this new repository is to be a hub for all developers to contribute to. They get immediate automated feedback and later reviews from their peers. Accepted pull requests can be sent upstream to steemit/steem. This way, the community repo also serves as a buffer to reduce the noise for dedicated blockchain devs.
There are no goals to fork Steem into two different versions, but rather Steemit Inc. changes can be merged back and reviewed by the community, same as all other contributions, allowing for more eyes on every change in Steem blockchain code.
My hope is that many will participate in this effort to further the development of the Steem blockchain itself. This allows more people, especially witnesses and developers, to learn how to code for the blockchain itself and teach each other best practices.
Later goals could be:
- A community testnet with the latest changes.
- Expanded documentation on how to create a hard fork with additional tooling for it.
- Bounties for community-requested features.
How to contribute
Please comment here with your github username if you want to be added as a reviewer in the organization. Everyone is free to fork it and create pull requests, the continuous integration system is set up to build all pull requests. All ideas and suggestions are welcome!
If you need chat support, ping me in the SteemDevs discord: https://discord.gg/a8RQkaw
This is a great project, and one I feel is definitely needed. The post itself is well written and illustrated.
I would have liked to see more of it, however. I would like to hear more both about the current situation and your plans for the future. In Utopian Blog category posts, we strive to make the content accessible to as wide an audience as possible. That means folks who may encounter this post without significant knowledge or experience of Steem and/or Steemit inc.
This is, potentially, a very important post. As such, it may have a greater reach than you anticipate. It is always good for the text to be welcoming to new readers with a bit of background.
Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.
To view those questions and the relevant answers related to your post, click here.
Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]
Thank you @didic!
I wanted to write more but felt most of it was getting redundant pretty quick, so I am hoping that people will ask questions so I get a better feel over what information is needed by them.
I hope that I find ideas for followup posts and putting it into bigger context from an outside perspective is one such great idea :)
One aspect you didn't cover, which is always good to have in Blog category posts, is yourself. Why did you feel this was needed? What made you want to do it? The personal aspect is one people often shy away from, but I find it always makes for a more compelling blogpost. To me, that's a big differentiator between Blog and, say, Dev category posts.
That probably comes from me being a developer and not a natural writer :) I want to develop for steem and so far disliked the process and thought "maybe others are as discouraged as I am? Let's fix it!" and so I spend a few days to improve things and get this organization going.
Thank you for your review, @didic!
So far this week you've reviewed 11 contributions. Keep up the good work!
I am not a techie guy but this is great. Thank you for doing this.
We need the decentralization and this is one way to do it. Put more of the core development upon the community and depend less on Steemit. That is what we need.
Thank you!
I hope to inspire more community developers to contribute.
You were already on my list of articles as a witness.
I am not putting this project on the list to try and get some more recognition for you.
It is a wonderful idea. Look for them over the next few days.
Is there a communication channel between the community version and the one maintained by Steemit Inc.? Are the contributions going to follow issue tracker from the upstream so that the merged codes have higher chances to get merged in the upstream?
Anyway, the idea looks amazing, and I feel that recently we can see more effort from the community. Looking forward to seeing if it becomes successful in its goal.
Communication channels are definitely a great idea! I first want to gain some traction and get things to show for before I open up direct communication. But the SteemDevs Discord has Steemit Inc. people on it and I would enjoy if that place can become one of such channels.
I follow the issue tracker and I hope that others who do get on board. By being a quality gate and feedback hub alone, it should help in delivering coherent pull requests, as per the contributing.md
I plan to add many other highly reputable people to the organization and get them all to work together. Wish me luck ;)
Great initiative. Been meaning to read up on the codebase and maybe look at parts of the codebase from a security perspective. Just looked at part of the code for the first time ever, so I might be a bit off on some of my remarks here, but at first glance, it looks like adding a few compiler flags to the code quality checks you discussed might not hurt the code. I was unable to check this thoroughly, as I didn't (don't) get a working commandline compile working on seperate cpp files due to an include of hardfork.hpp that I don't know where to get from.
The thing that jumped out at me most were some things that to me looked like code quality issues that the -Weffc++ compiler flag of the GNU compiler should be able to catch. Two other code quality checking flags I suspect could yield usefull improvement hits would be -Wshadow and -Wold-style-cast. Each of these three flags, I know from experience could potentially end up exposing bugs with security implications. As said, I couldn't really check because of the hardfork.hpp include.
Think I'll try to get acquainted with the codebase a bit over the coming weeks to see if I can get its structure and coding philosophy internalized.
Awesome stuff! The compile flags are set inside the makefiles that I didn't touch so far. But I noticed that a linter found a few hundred potential issues. I plnned to play around with the internals over the coming weeks.
If you have compile issues, talk to me on discord, I can help.
And if you give me your github username, I add you to the project as a potential reviewer.
Give me a few weeks to get better acquainted with the code base. Want to first figure out if I'dd rather be proposing or reviewing.
Great initiative, this is much needed!
Count me in! GitHub : stoodkev
Nice! You got an invite :)
I am obviously no tech guy and don't understand most of the stuff of this post. However, if I understand correctly, this will lead to more people being able to check for mistakes/bugs/possible errors - And especially after the last weeks, this is something one can't appreciate too much. So, thank you :)
Exactly! One of the goals is to peer review all code that is done when it is done and not when hard fork time happens to be. This could help in finding bugs. And it definitely helps in educating new developers.
I'm really excited to see you announce this! Being able to follow along with others who have a handle on blockchain base code and those who are just learning is a great way for each of us to get better~
This is exciting and overdue! Whoot, thank you very much.
This is a great initiative, thank you for your work :)
This is really a great idea. I’m so glad you’re one of our witnesses.