👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to questions for the USO ("Utilizarea sistemelor de operare") course. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
The process described here has several goals:
- Collect interesting and good quality questions.
- Forward relevant questions to USO quizzes.
- Make it easy for maintainers to review contributions.
Please add the following information in the description of your PR:
- Number of questions added
- Topics used in questions
Working on your first Pull Request? You can learn how from the free series How to Contribute to an Open Source Project on GitHub.
Preparatory phases:
- Create a fork of this repository.
- Clone your fork locally or update your local clone with the upstream repository updates.
Adding new questions:
- Think of a nice and interesting question (or more) you want to add as a contribution.
- Create a new branch for the new question(s).
- Locate the file(s) where the question(s) will be added, based on question(s) topic.
- Use the human-readable format to develop a new question in the appropriate file.
You can start from the
template.hr
file. See sample questions insample.hr
. - Commit changes to your branch.
- Push changes to your fork.
- Create a pull request (PR).
- Answer to requests from the reviewer on the PR.
- Once the reviewer approves the PR, your contribution will be integrated.
We use a custom format (named human-readable format, or hr) to easily create new questions. The format is documented in the Quiz Manager repository.
Topics for USO questions are listed in the topics.txt
file:
admin
: administration-related questions, usually related to services and system configurationapp_dev
: application development, build automation, build phases, development toolsbasic
: basic / common sense questions on operating systems and Linuxboot
: bootstrapping, bootloaders, the boot processcli
: using the shell, shell operators, one linersdata
: data storage and processingembedded
: embedded systemsfile_system
: file operations, filesystem hierarchygeneral
: question covering multiple topicshardware
: hardware, drivers, physical computing resourcesnetiquette
: Internet etiquette guidelinessnetworking
: network configuration, network parameters, Internet, Internet servicesprocess
: working with processes, process inspection, process hierarchyregex
: regular expressionssecurity
: data protection, data integrity, encryption, password managementshell_scripting
: shell scripting, automationuser
: users, groups, user management, access control, filesystem permissionsvm
: virtual machines, containers
Choose one topic per question.
For questions with tuples (i.e. Which of the following matches the (security, filesytem, networking) tuple
), use the general
topic.
For difficulty use a numeric value between 1
and 3
, as shown in the difficulty.txt
file.
USO questions may fall under one of the categories:
- questions with 4 answers in total, 1 correct answer
- questions with 5 answers in total, 2 correct answers
- questions with 7 answers in total, 3 correct answers
- Use the present tense ("Add feature" not "Added feature").
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...").
- Prefix each question commit message with the topic name.
- Limit the first line to 72 characters or less.
- Reference issues and pull requests liberally after the first line.
Sign-off your commits.
Take a look in these guidelines for your Git commit messages.
This CONTRIBUTING.md is adapted from Atom, ember.js, Node.js, Nayafia's Template.