asftp --init # Configure sftp in the ssh damon asftp --add --route share # Create a route named git. Accessed via sftp://git@ip-address mkdir /var/asftp/share/patches # Create a directory to upload patches to chmod 755 /var/asftp/share/patches # Enable writing to the folder chown share:ASFTP /var/asftp/share/patches # Assign owner ship to the directory mkdir /var/asftp/share/issues chmod 755 /var/asftp/share/issues chown share:ASFTP /var/asftp/share/issues mkdir /var/asftp/share/discuss chmod 755 /var/asftp/share/discuss chown share:ASFTP /var/asftp/share/discuss touch /var/asftp/share/discuss/general.txt touch /var/asftp/share/discuss/parsing.txt touch /var/asftp/share/discuss/rendering.txt touch /var/asftp/share/discuss/adapting.txt touch /var/asftp/share/discuss/specs.txt touch /var/asftp/share/discuss/off-topic.txt cat > /var/asftp/share/README.txt << EOF --- Welcome to the GRIMUI share server! --- This server handles all parts of the community, you can find: - patches/ This is where you can upload, review, and comment on patches for the grim engine. Here's how it works: git clone https://remote.grimui.com/grim.git cd grim Make some important changes ... git format-patch -1 HEAD ls 0001-.....patch Now take that patch and upload it to patches/ Once the patch is uploaded you can add information on why you are making your patch and any other details that may be useful. The patches directory is a "locked" directory, that means you can upload file but can't delete anything. You can also add content to a file but not remove. The patches directory will also automatically add a "#" to each line you insert so the patch file can be merged without issues. It is encouraged to comment on any patch you see so the creators can get feedback. Don't worry about messing anything up, the file watcher (asftp.sh) will manage the changes for you! Once a patch is approved it will be merged and removed from the patches directory. IMPORTANT: Please sign the end of your patch comments with "- name" so the creator knows who to reach out to for more information. - issues/ If you have found an issue with the grim engine it is encouraged to report it. Even if it turns out to be nothing please report anything you see, this gives valuable feedback and helps shape the way the API is designed. To create a issue first go to the issues directory and find the file with the largest issue number. All issue names are a sequental number so if the last issue was 786.txt then create a file on your computer named 787.txt. The formatting of the issue should look like this: cat 787.txt # file_name:line_number Message - Name src/parser.cc:343 genSelectorStrings does not properly handle at-rules - lakefox # A message explaining way this is a issue and how to reproduce it I discovered that the function genSelectorStrings is not properly handling at-rule parsing when I ran the following style sheet: @container (width > 400px) { h2 { font-size: 1.5em; } } /* With an optional */ @container tall (height > 30rem) { p { line-height: 1.6; } } When parsed the is being parsed as a empty string. # Optional (but helpful) test case reproducing the issue TEST_CASE("parseCSS-at-rules") { std::string cssContent = R"~~~( @container (width > 400px) { h2 { font-size: 1.5em; } } /* With an optional */ @container tall (height > 30rem) { p { line-height: 1.6; } } )~~~"; std::istringstream inputFile(cssContent); std::unique_ptr handler = parseCSS(inputFile); SECTION("parseCSS can parse @container") { REQUIRE(handler->item(1).name == "tall"); } } After you have the issue file made, upload it to the issues directory and from there people can add comments and ideas to it. All comments will be prefixed with a "> " automatically. Again please sign the end of every comment so we know who is talking. - discuss/ This directory does not all uploads, there are a couple files you can edit to discuss different ideas. general.txt EOF