palpatine
Catch
palpatine | Catch | |
---|---|---|
17 | 55 | |
16 | 18,020 | |
- | 0.5% | |
10.0 | 9.2 | |
over 1 year ago | about 20 hours ago | |
C++ | C++ | |
MIT License | Boost Software License 1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
palpatine
-
December goals
I have been working on building my static site generator palpatine for the last two months. However, I have not had the chance yet to package it up to create my first release yet. When I attempted to package it up a few days ago, I ended up with a lot of errors and bugs that would require lots of time to debug. I plan on sitting with it next week again.
-
Makefiles can be helpful in your CI Workflow
While developing palpatine, I used Makefile to automate the process of building and running the project.
-
The perfect open-sourcer does not exist
One of the personal projects I love developing is palpatine. I blogged about it here and I am constantly adding new features to it! So far it has reached 5 starts and keeps growing with the help of the open-source community.
-
C++ unit testing with Catch2 🧪👨🔬
Writing unit tests for my static site generator - palpatine, taught me an entirely new testing framework called Catch2. For my Hacktoberfest pull request this year I had done a unit testing contribution for a repository and I am currently working on building a microservice for my cloud computing class which requires us to use Jest for JavaScript unit testing. So, I can say that I have some experience with unit testing and continuing to develop my skills in it.
-
Static analysis tooling with CMake
See the directory called cmake in the root directory of palpatine. Having cmake modules within the directory cmake is commonly used, the purpose of doing is to include() custom CMake functions to be used later in the project.
-
Easter eggs in Hacktoberfest 🪺
I have been developing a CLI tool called palpatine for a while now. It is a static site generator (SSG) written in C++ and still under development, ready for the support of the community in GitHub. This Hacktoberfest, I experienced the role of a contributor in open source but in the next Hacktoberfest, I will be participating as a maintainer of palpatine!
-
Unit testing like a Hacker
Ensuring everything is working as intended makes sense in principle, for example, I currently am developing a static site generator in cpp, palpatine, and as I develop it I stress about writing unit tests for it. Soon enough whenever a bug occurs I will be writing unit tests before debugging it. While writing unit tests though, I need to keep in mind that they won't stick around forever, my ssg tool is rapidly evolving; refactoring, adding new features, fixing bugs and shipping new releases day by day. That said, the unit tests will be obsolete soon enough and I might end up spending more time maintaining unit tests than actually developing the tool. Thus my philosophy at writing unit tests is to write them when they are actually needed, maybe when the consequences of breaking the code are high or when they are solving a specific problem.
-
A good code thief
While developing palpatine, I found myself browsing through the internet and getting inspired by how other static site generators (SSG) tackled my problems (i.e. supporting md files, stylesheets, exception handling). During this process, it was obvious to me that JavaScript dominated the field of static site generators, as almost all the options I looked at, were Javascript-based. Some of the interesting ones I found were: Docusaurus, Gatsby, Jekyll and Eleventy. They all have their unique features, competing with all other SSGs, and are constantly being maintained by the community in GitHub. Docusaurus has a showcase page where you can see how other serious projects are using their tool, such as Jest website built with Docusaurus, it is inspiring when you see their pages professionally done. So I initially read their documentation on how to get started, very straightforward, and within minutes I was able to set up my docusaurus site! Key features to note are: easy to use, beautiful themes, precise documentation and customizable.
-
palpatine on time machine
I ended up with new file FileHandler.h with the base class Handler and the classes MarkdownHandler , TextHandler which inherits the base class. They have virtual functions that are overridden in the derived classes, so that I can use the concept of polymorphism respectively.
-
Implementing Difficult Features While Learning New Things in C++
To add a new feature to palpatine which is an awesome static site generator written in C++ by Batuhan, I started by filing an issue. While I worked on his repo for adding this new feature, he worked on mine to add the same feature. Here are the detailed instructions for this week's lab. Batuhan also worked on my repo for adding the –config feature for my static site generator, rwar, written in Python. These are awesome repos to check out!
Catch
- C++ Comparison Operator Craziness
-
How can I check the execution time of a program rendered in SFML?
https://github.com/catchorg/Catch2 (for unit testing, need to do timing yourself)
- Semi crise existentielle de développeur
-
`DestroyJavaVM()` failing on OpenJ9?
```c++ // https://github.com/catchorg/Catch2/tree/Catch1.x // https://github.com/philsquared/Catch/releases/download/v1.12.2/catch.hpp
-
How do you use the Catch testing library?
Include(FetchContent) FetchContent_Declare(Catch2 GIT_REPOSITORY https://github.com/catchorg/Catch2.git GIT_TAG v3.3.2 ) FetchContent_MakeAvailable(Catch2)
- Tracking the Fake GitHub Star Black Market
- The Little Things: Why you should always have benchmarks ready
-
Trying to add tests for my cmake for catch2 with ctest.
Another possible issue would be the include(Catch) in your root cmakelists.txt . To include Catch there it must be part of your module path. Otherwise you have to include the path to that catch2 cmake file. Here is that file in their repository - https://github.com/catchorg/Catch2/blob/devel/extras/Catch.cmake . I recon that CMake doesn't know about this file since you call find_package(Catch2 REQUIRED) later in your subdirectory
-
Seeking Improve Advice on my C++ Network Library
Unit test coverage by Catch2 framework.
- Catch2 added SKIP (and more built-in matchers)
What are some alternatives?
vscode-pets - Adds playful pets 🦀🐱🐶 in your VS Code window
Google Test - GoogleTest - Google Testing and Mocking Framework
cve-bin-tool - The CVE Binary Tool helps you determine if your system includes known vulnerabilities. You can scan binaries for over 200 common, vulnerable components (openssl, libpng, libxml2, expat and others), or if you know the components used, you can get a list of known vulnerabilities associated with an SBOM or a list of components and versions.
doctest - The fastest feature-rich C++11/14/17/20/23 single-header testing framework
rwar - rwar - A simple bare-bones Static Site Generator (SSG) with minimal features. An SSG allows a user to generate a complete HTML website from raw data and files, without having to write out the HTML. Rwar is a command line tool that takes .txt files as input and generates .html files as output.
Boost.Test - The reference C++ unit testing framework (TDD, xUnit, C++03/11/14/17)
termcolor - Termcolor is a header-only C++ library for printing colored messages to the terminal. Written just for fun with a help of the Force.
CppUTest - CppUTest unit testing and mocking framework for C/C++
argparse - Argument Parser for Modern C++
Google Mock
json_test_data - Test data for nlohmann/json
CppUnit - C++ port of JUnit