Skip to content

chore: phase-3a polish (README, LICENSE, gitignore, CI) - #101

Merged
MukhammadIbrokhimov merged 4 commits into
mainfrom
chore/phase-3a-polish
Apr 17, 2026
Merged

chore: phase-3a polish (README, LICENSE, gitignore, CI)#101
MukhammadIbrokhimov merged 4 commits into
mainfrom
chore/phase-3a-polish

Conversation

@MukhammadIbrokhimov

Copy link
Copy Markdown
Owner

Phase 3a polish — see workspace/AUDIT_LOG.md for context.

What this PR does

docs: rewrite README

  • Removes 'Repo Owner' framing and 'What We Learned' student-journal section
  • Adds Architecture section pointing to tokenizer/parser/executor source files
  • Adds Constraints section with permitted libc calls
  • Adds 'What was technically hard' (heredoc + expansion, quote tokenisation,
    signals across fork, no-leak discipline)
  • Credits co-author Ghazaleh Ansari

chore: add MIT LICENSE

  • Covers both authors in the copyright notice

chore: ignore macOS + editor metadata; untrack srcs/.DS_Store

  • .gitignore now covers .DS_Store, .vscode/, .idea/, *.swp, and the
    minishell binary output
  • Untracks srcs/.DS_Store that slipped back in

ci: add build workflow

  • Ubuntu-latest, installs libreadline-dev, runs make, verifies binary
  • Runs on push to main and PRs
  • Build badge added to README

Not changing

  • No source code changes
  • No Makefile changes
  • includes/libft/ stays as vendored

After merge

I'll apply the same polish pattern to Cub3D, WebServ, and Inception as separate PRs.

- Remove student-journal 'What We Learned' and 'Repo Owner' framing
- Add Architecture section pointing to tokenizer/parser/executor source files
- Add Constraints section listing the permitted libc calls from the 42 subject
- Add 'What was technically hard' section (heredoc+expansion, quote
  tokenisation, signals across fork, no-leak discipline)
- Keep Readline dependency and build instructions
- Credit co-author Ghazaleh Ansari
Covers both authors. MIT chosen for permissiveness; it grants equal rights
to all contributors listed in the copyright notice.
The existing .gitignore covered C build artefacts but missed .DS_Store
and .vscode/. This adds those plus the minishell binary output.
Also untracks srcs/.DS_Store which slipped back in after an earlier
cleanup commit.
Installs libreadline-dev and verifies that make produces a minishell
binary. Runs on push to main and on PRs. Surfaces a build-passing
badge in the README.
Copilot AI review requested due to automatic review settings April 17, 2026 20:54
@MukhammadIbrokhimov
MukhammadIbrokhimov merged commit 07033a2 into main Apr 17, 2026
4 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR focuses on “phase-3a polish” by improving repository hygiene and presentation: updating top-level documentation, formalizing licensing, cleaning up ignored/untracked files, and adding CI to ensure the project builds reliably.

Changes:

  • Rewrites README.md to reflect project scope, architecture, constraints, and authorship, and adds a CI build badge.
  • Adds an MIT LICENSE covering both authors.
  • Updates .gitignore to ignore macOS/editor artifacts and the minishell binary, and introduces a GitHub Actions build workflow.

Reviewed changes

Copilot reviewed 3 out of 5 changed files in this pull request and generated 1 comment.

File Description
README.md Documentation rewrite + build badge + architecture/constraints sections
LICENSE Adds MIT license text with both authors
.gitignore Ignores .DS_Store, IDE/editor files, swap files, and minishell binary
.github/workflows/build.yml Adds Ubuntu CI workflow to install readline and run make

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
- C, compiled with `cc -Wall -Wextra -Werror`
- No leaks (verified with `valgrind --leak-check=full`)
- Limited set of permitted libc calls (`readline`, `printf`, `malloc`, `free`, `write`, `access`, `open`, `read`, `close`, `fork`, `wait`/`waitpid`/`wait3`/`wait4`, `signal`, `sigaction`, `sigemptyset`, `sigaddset`, `kill`, `exit`, `getcwd`, `chdir`, `stat`/`lstat`/`fstat`, `unlink`, `execve`, `dup`/`dup2`, `pipe`, `opendir`/`readdir`/`closedir`, `strerror`, `perror`, `isatty`, `ttyname`, `ttyslot`, `ioctl`, `getenv`, `tcsetattr`/`tcgetattr`, `tgetent`/`tgetflag`/`tgetnum`/`tgetstr`/`tgoto`/`tputs`)
- 42 norm: 80-char lines, ≤25-line functions, no globals except one `volatile sig_atomic_t` for the signal flag

Copilot AI Apr 17, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

README claims the project uses "no globals except one volatile sig_atomic_t for the signal flag", but the code currently declares/defines g_signal_received as a plain int (see includes/sadaf.h and srcs/execution/signals.c). Please either update the README to match the actual type/guarantees, or change the implementation to use volatile sig_atomic_t if that’s the intended constraint.

Suggested change
- 42 norm: 80-char lines, ≤25-line functions, no globals except one `volatile sig_atomic_t` for the signal flag
- 42 norm: 80-char lines, ≤25-line functions, no globals except one signal-flag global

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants