Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1636 commits
Select commit Hold shift + click to select a range
dc1c711
#707: Update tests
nvbn Oct 10, 2017
1358123
#707: Use pickle for cache keys
nvbn Oct 10, 2017
baa08fa
#707: Don't use `@cache` on methods
nvbn Oct 10, 2017
a89921d
#708: Fix handling of shelve errors
nvbn Oct 10, 2017
2e69534
quick fix for #655 (#702)
Epse Oct 10, 2017
9cbed65
Bugfix: brew_update_formula.py
matthewfallshaw Oct 12, 2017
271a7c6
#N/A: Add `prove_recursively` rule
nvbn Oct 15, 2017
4ec4b26
#N/A: Add `brew_cask_dependency` rule
nvbn Oct 15, 2017
840bc73
#N/A: Fix deprecation warnings
nvbn Oct 15, 2017
bafbbec
#N/A: Fix deprecation warnings
nvbn Oct 15, 2017
b0fa3d9
Merge branch 'patch-1' of https://github.com/matthewfallshaw/thefuck …
nvbn Oct 15, 2017
fd4b887
#710: Fix tests
nvbn Oct 15, 2017
d5ea221
Merge branch 'matthewfallshaw-patch-1'
nvbn Oct 15, 2017
12f79f6
#652: Add new git_push_different_branch_names rule
Epse Oct 15, 2017
89866ba
#702: fix minor issues with `php_s` rule
scorphus Oct 10, 2017
70c155a
#702: Make `match` in `php_s` rule more strict
nvbn Oct 16, 2017
511fd2f
Merge branch 'scorphus-pull-request-702'
nvbn Oct 16, 2017
9638a1c
#711: Handle ctrl+n and ctrl+p
nvbn Oct 16, 2017
4ca387d
Bump to 3.24
nvbn Oct 16, 2017
e5b3b41
#715: Fix work on Windows
nvbn Oct 25, 2017
45e19f0
#N/A: FIx new flake8 warnings
nvbn Oct 25, 2017
0aa6f1d
git_flag_after_filename: Call match() instead of copying its body
josephfrazier Oct 31, 2017
8ecca54
git_flag_after_filename: Handle new error message
josephfrazier Oct 31, 2017
8cf30e0
#728: Add heroku_multiple_apps rule (#729)
josephfrazier Nov 9, 2017
95ecf6d
Fix zsh alias (#733)
MasterNayru Nov 16, 2017
66cdd9f
Add apt_list_upgradable rule (#732)
josephfrazier Nov 16, 2017
d337512
#737: Add support of third-party rules
nvbn Nov 23, 2017
c5dd3ea
Bump to 3.25
nvbn Nov 23, 2017
0ac0208
#783: Don't rely on $SHELL for detecting shell
nvbn Nov 27, 2017
603cc10
Use pytest<3.3 to fix Python 3.3 tests (#746)
josephfrazier Dec 21, 2017
ff26e73
git_push: Don't add duplicate remote/branch name (#745)
josephfrazier Dec 27, 2017
0a5be62
Update license year to 2015-2018 (#752)
m1guelpf Jan 1, 2018
e11d984
Suggest git checkout -b (#754)
djh82 Jan 1, 2018
8a8f7ee
git_push: Make option handling more robust (#751)
djh82 Jan 2, 2018
5bce70d
Drop Python 3.3 Support (#747)
josephfrazier Jan 2, 2018
d469042
README: Use `pip3` in upgrade command (#756)
josephfrazier Jan 2, 2018
26629ac
Add git merge rule (#755)
djh82 Jan 2, 2018
cbbffe7
#738: Set SHELL env var for fish and tcsh
scorphus Dec 17, 2017
de46e4e
#738: Assert TF_SHELL is defined in bash and zsh aliases
scorphus Dec 17, 2017
81e974a
Fix fish shell aliasing (#753)
djh82 Jan 3, 2018
1f46b2c
Add GitHub Issue template (#749)
josephfrazier Jan 3, 2018
802bbad
Move Developing instructions from README to CONTRIBUTING (#757)
josephfrazier Jan 3, 2018
51d55ec
Add apt_upgrade rule (#761)
josephfrazier Jan 3, 2018
520d6ca
git_push: Escape single quote in branch names (#760)
djh82 Jan 4, 2018
421b230
Add rule for ADB unknown commands (#765)
djh82 Jan 5, 2018
d7b818d
Offer git commit --amend after previous git commit (#764)
djh82 Jan 5, 2018
de6908c
#762: handle single quotes in git_branch_exists
djh82 Jan 5, 2018
d01e5f8
git_push: Handle branch names containing 'set-upstream' (#759)
djh82 Jan 6, 2018
a7bd876
Add installation instructions on FreeBSD (#770)
yzgyyang Jan 10, 2018
2cf8991
Add `git_merge_unrelated` rule for `git merge --allow-unrelated-histo…
josephfrazier Jan 17, 2018
28e1da9
Added hebrew the list of keyboard layouts (#778)
thedrow Jan 29, 2018
6a576fc
Added a rule to delete sudo for pacaur. (#787)
jgwak Feb 22, 2018
1e662d2
#788: Use uniq last tracker path for different users
nvbn Feb 23, 2018
39c7d35
Merge branch 'master' of github.com:nvbn/thefuck
nvbn Feb 23, 2018
99a0be8
Squashed commit of the following:
nvbn Feb 23, 2018
ce7ae5d
#786: Fix apt_get rule on ubuntu 18.04
nvbn Feb 23, 2018
541887b
#786: Fix tests
nvbn Feb 23, 2018
4ceaf1f
#N/A: Use mmap for sharing output in instant mode
nvbn Mar 13, 2018
247c018
#N/A: Fix mmap log cleanup
nvbn Mar 19, 2018
8a78f77
#N/A: Test only with python3 in ci on osx
nvbn Mar 19, 2018
a0b87f5
Update README.md for clarity and concision (#794)
b1skit Apr 1, 2018
1888426
Bump to 3.26
nvbn Apr 25, 2018
cd57dda
Update README.md
ewpratten May 9, 2018
53d2cd4
#N/A: Remove `pip` from requirements.txt (#813)
scorphus May 13, 2018
1b076a1
Fix spelling (#814)
revolter May 13, 2018
3d842f7
Support aliases with equal sign (#808)
scorphus May 13, 2018
9ca6113
#N/A: Add basic shell logger support
nvbn May 14, 2018
fbfb541
#N/A: Fix formatting
nvbn May 14, 2018
37e992a
Squashed commit of the following:
nvbn May 22, 2018
c1c0124
fixed powershell coloring (#805)
May 22, 2018
376f4b0
Add brew_reinstall rule (#816)
revolter May 22, 2018
adbe0b4
Bump to 3.27
nvbn May 22, 2018
237f218
Fix Win32 get_key (#819)
MattKotsenas Jul 9, 2018
20e5c80
git_push: Handle command containing force argument (#818)
gma2th Jul 9, 2018
7b1f4d7
Avoid masking shell return values in Zsh.app_alias (#820)
chrismendis Jul 9, 2018
fd229ab
added notice to README.md (#821)
Mas0s Jul 9, 2018
580092b
added --yeah as an alterative arg to -y and --yes; updated README.md …
Neutrollized Jul 9, 2018
154751c
Create `cat_dir` rule for replacing `cat` with `ls` (#823)
scolby33 Jul 9, 2018
695771c
Stop parsing language-variable cat output to make cat_dir more reliab…
scolby33 Jul 11, 2018
8b1fc73
#827: Make `cat_dir` rule safer
nvbn Jul 11, 2018
3ab0d8a
#367: Support BSD style output in touch rule (#830)
scorphus Jul 29, 2018
a7898b9
Add Python 3.7 version support (#833)
duboviy Aug 13, 2018
49145cb
Added a rule to match az binary sub-command misses (#834)
jamtur01 Aug 15, 2018
3430c1d
Add snapcraft.yaml (#836)
mati865 Oct 2, 2018
670c450
ISSUE_TEMPLATE.md: sync format of fill-in fields (#841)
waldyrious Oct 2, 2018
9adcf5f
Added back-ticks for the consistency (#845)
bluszcz Oct 8, 2018
1c95b10
Some improvements (#846)
scorphus Oct 8, 2018
7acd239
Add the pwsh support for thefuck (#844)
manikantanallagatla Oct 9, 2018
8ab607e
#N/A: Use twine for uploading new releases
nvbn Oct 16, 2018
b7a699c
#835: Make cache failure non-fatal
nvbn Oct 17, 2018
0812b5f
Comply to new flake8 3.6 (#853)
scorphus Oct 30, 2018
6fd5604
update install guide for Linux Mint (#852)
premek Oct 30, 2018
c8ea012
Remove zsh instant mode log with -f (#854)
longsleep Nov 2, 2018
c7262fa
#N/A: Fix osx travis-ci build
nvbn Nov 21, 2018
7fe5a35
#N/A: Fix tests with py.test 4
nvbn Nov 21, 2018
a538907
#N/A: Remove performance tests as they are meaningless with the curre…
nvbn Nov 21, 2018
95244b0
#855 - Support Ukrainian layout; Fix matching of similar layouts (#856)
kozar Nov 21, 2018
a6b6897
Bump to 3.28
nvbn Nov 29, 2018
477dedb
#N/A: Clear `dist/` before uploading releases
nvbn Nov 29, 2018
e1114cb
Fixed incorrect ordering of for_app and sudo_support causing apt_inva…
chrisdepas Dec 11, 2018
a37548a
#868: Point out you can use linuxbrew in README
fabiosantoscode Jan 4, 2019
0de4582
#869: Use `fish --version` instead of an interactive shell for info()
scorphus Jan 2, 2019
76568b0
Fix 2 DeprecationWarning: invlid escape sequence (#872)
BoboTiG Jan 6, 2019
dacc976
#N/A: Fix tests with pytest 4
nvbn Jan 14, 2019
f1ff980
Comment correction on ui.py (#874)
yangkyeongmo Jan 14, 2019
f892cca
Squashed commit of the following:
nvbn Jan 14, 2019
d54018b
#N/A: Return an ordered list from set of overridden aliases
scorphus Jan 16, 2019
e8c387f
#N/A: Add rule for `git commit` that reverts previous commit (#886)
asong4211 Feb 25, 2019
4ead9c0
Docker login (#894)
IngaFeick Apr 3, 2019
f2563e7
Add rule for pip_install permission fix (#895)
IngaFeick Apr 24, 2019
f934346
Pkg should be recommend on freebsd to install (#905)
darkfiberiru Apr 24, 2019
1c2fb03
#899: Support `-y/--yeah` command line args in Fish Shell (#900)
scorphus Apr 24, 2019
6fb20d7
#902: Use `os.pathsep` to split PATH env var (#917)
scorphus May 21, 2019
c13a757
Adding yay AUR manager to Arch Linux's commands since yaourt is unmai…
0xcomposure May 21, 2019
e6133a5
Fix a couple small shellcheck errors (#915)
rpdelaney May 22, 2019
26e5660
#N/A: Improve support to Windows in `no_command` rule (#918)
scorphus May 27, 2019
946ae96
#N/A: Add `pyenv_no_such_command` rule (#919)
scorphus May 27, 2019
d2543ef
#N/A: Improve how version is fetched for all shells (#920)
scorphus May 27, 2019
7c91460
Bump to 3.29
nvbn May 27, 2019
f6b64f7
#N/A: Fix the release script
nvbn May 27, 2019
6698494
support nixos command-not-found, closes #912 (#922)
KiaraGrouwstra Jun 26, 2019
80afa6d
#921: Try printing alias before trying to fix a command (#923)
scorphus Jun 26, 2019
38f628a
Added rules to run terraform init before terraform plan or apply (#924)
mathcantin Jun 26, 2019
d3011c1
Docker remove container before remove image (#928)
cjmartian Jul 10, 2019
e0a2bd3
Only consider raw command in output (#931)
tobixx Aug 19, 2019
bc55060
Fix: rules.git_checkout not working with git 2.22.0 (#934)
ik1ne Aug 19, 2019
4ecc07a
[.editorconfig] Init (#938)
SamuelMarks Aug 19, 2019
b45559a
Add: rules/go_unknown_command for misspelled go commands. (#933)
ik1ne Aug 21, 2019
147fe42
Update docker commands. (#940)
ik1ne Aug 21, 2019
da014a2
Change: rules_git_checkout handling branch names with slashes & Remot…
ik1ne Sep 2, 2019
e3a3d5a
change sudo.py pattern to lowercase (#947)
wx-csy Sep 2, 2019
d13e559
Correct "apt uninstall" -> "apt remove" (#950)
thatneat Sep 17, 2019
61ddf3b
Slow command timeout didn’t work (#961)
RetekBacsi Oct 8, 2019
e42a2bf
Add fuck --hard as alternative to fuck --yeah (#963)
Faaab Oct 8, 2019
c3a2b1e
removed extra whitespace (#967)
elihschiff Oct 8, 2019
c3a98e0
Add Python 3.8 version support (#983)
duboviy Oct 19, 2019
870e230
Add support for switch_lang for Korean. (#981)
ik1ne Oct 19, 2019
c83cbd2
Support for yum invalid commands. (#968)
ik1ne Oct 19, 2019
3afcc0f
#N/A: Add new `git_branch_delete_checked_out` rule (#985)
scorphus Oct 22, 2019
a459f8d
Issue#965 - added venv instructions to CONTRIBUTING.md (#976)
shawnmcgraw Oct 22, 2019
ae97a7c
#N/A: Use Xenial on TravisCI (#989)
scorphus Nov 2, 2019
5cb047c
#N/A: Inform the correct path to `DEFAULT_RULES` (#993)
scorphus Nov 2, 2019
b817c92
Add rule to remove leading shell prompt literal $ (#996)
boonwj Nov 2, 2019
1e86bfd
fix: incorrect powershell alias instruction (#1004)
yume-chan Nov 2, 2019
2135f67
Fix typos in README.md (#997)
boonwj Nov 2, 2019
74ee542
Add choco_install rule (#998)
philiparola Nov 7, 2019
8bf1171
N/A: Remove deprecated python 3.4 support + fix tests in 2.7 (#1025)
nvbn Dec 16, 2019
38721be
removed useless redefined of path variable (#1023)
elihschiff Dec 16, 2019
8a856eb
Fix simple typo: controle -> control (#1017)
timgates42 Dec 16, 2019
28e8241
fixed grammar on how to configure message (#1029)
Dec 23, 2019
eff74a3
#N/A: Unlink python 2 on travis-ci osx build (#1032)
nvbn Jan 5, 2020
0315f97
Apt-get help is now much more like apt (#1031)
djh82 Jan 5, 2020
99d493d
Allow multiple returns from git_checkout (#1022)
djh82 Jan 13, 2020
3dab454
#1047: Fix pip_unknown_command by using a less restrictive regex
Caplinja Mar 1, 2020
50ddfa7
#N/A: Add a new rule to create directory on cp or mv
Caplinja Mar 1, 2020
de883ca
Bump to 3.30
nvbn Mar 19, 2020
43734c5
Added pacman invalid option rule (#960)
DragonGhost7 Mar 28, 2020
ba309ed
#960: Improve pacman_invalid_option rule (#1072)
scorphus Apr 6, 2020
5c2673b
add git-lfs support (#1056)
cjmartian Jun 10, 2020
742ccac
#N/A: Fix formatting (#1092)
dvjn Jun 10, 2020
a6561ac
#N/A: Refactor for better readability (#1094)
dvjn Jun 14, 2020
23e41fa
#1096: Rule: Bypass failed git hook (#1097)
dvjn Jul 16, 2020
20a1f50
Add rule to remove a doubled-up "git clone" in a git clone command. (…
nyanotech Jul 16, 2020
2371db4
#1066 - Fix rule for brew cask (#1111)
aditig Jul 16, 2020
5de062a
#509: Fixed correction on windows machine running other shells (#1091)
dvjn Jul 16, 2020
88af9cb
#1113: Ignore a rule that fails to load (#1124)
scorphus Nov 3, 2020
20edef3
#1113: Do not load excluded rules (#1125)
scorphus Nov 3, 2020
6d759e4
Fix pytest warnings (#1116)
KartikSoneji Nov 3, 2020
7757414
Skip test instead of failing if go executable is not found. (#1117)
KartikSoneji Nov 3, 2020
cbe552c
#1141: Fix crash on empty history (#1145)
dvjn Nov 18, 2020
083fd70
#1149: Add python_module_error rule (#1151)
dvjn Jan 19, 2021
a545607
#N/A: Migrate CI pipeline to Github Actions (#1154)
dvjn Jan 21, 2021
e6b17eb
#N/A: Add conda rule (#1138)
cjmartian Feb 8, 2021
bcff4c7
#/N/A: Extend pyenv rule to include goenv, nodenv and rbenv (#1100)
gkodosis Feb 11, 2021
f8716db
#1117: Mock Popen in go_unknown_command test
scorphus Feb 22, 2021
5e141fb
#N/A: Add a Contents section to README (#1174)
bhav09 Mar 12, 2021
4619d44
#1174: Fix anchor references
scorphus Mar 13, 2021
1270914
#1154: Fix badges in README (#1175)
dvjn Mar 13, 2021
b1158fa
#N/A: Add `cd_cs` rule (#1167)
s1ddly Mar 22, 2021
18dc8ec
#N/A: Update license year to 2020-2021 (#1088)
godofhyperdeath Apr 16, 2021
ab3de2b
#N/A: Force decorator<5 for Python <= 2.7
scorphus Apr 17, 2021
1a8a082
Add excluded_search_path_prefixes setting (#1165)
stuartleeks Apr 21, 2021
d8f3a60
NA: Fix possible changes in files outside of working directory (#1206)
nvbn Jun 8, 2021
e4370f8
Bump to 3.31
nvbn Jun 9, 2021
c3b1b90
Fix git_hook_bypass priority (#1207)
hamidnazari Jun 15, 2021
ccdb12a
Avoid using pkg_resources
felixonmars May 5, 2021
5293f36
#1164: Optimize GIFs with ImgBot
agarwalutkarsh554 Jun 23, 2021
e90c807
#N/A: Fix grammar and spelling errors (#1193)
donno2048 Jun 29, 2021
ad94409
#N/A: Fix yield_fixture deprecation (#1211)
abraham-chan Jun 29, 2021
7a081ff
#455: [README] Add uninstall instructions (#1171)
Rom1deTroyes Jun 30, 2021
84e5db7
#1039: Remove all leading $ not just one
theslimshaney Feb 8, 2020
0c579f0
#1123: Update composer_not_command rule (#1135)
dvjn Jun 30, 2021
182b50e
#1150: Update the name of macOS on README
AirmanKolberg Jul 1, 2021
60b3c57
#942: Add new git_branch_0v_to_dash_v rule
ProfessorTom Jul 1, 2021
9d9b196
#1210: Add rule 'rails_migrations_pending'
abraham-chan Jul 6, 2021
578fb2a
#1109: Fix a typo on a comment
kwonmha Jul 6, 2021
cf61565
#1133: Match commands with path prefixes in @for_app decorations
rpdelaney Jul 7, 2021
4eb0b66
#1131: Improve git_commit_add rule
scorphus Jul 8, 2021
d3c5967
#1184: Add new rule for main / master Git branches
storey247 Apr 6, 2021
0796349
#1184: Improve + fix `git_main_master` rule
scorphus Jul 9, 2021
601fdeb
#942: Improve git_branch_0flag rule - with a new name
scorphus Jul 1, 2021
5cbb212
#1131: Add rule for Git commit with no added files
the-docta Sep 8, 2020
fa356a4
#1215: Remove redirection to stderr with the ^ character
scorphus Jul 17, 2021
2c9f643
#1184: Add devcontainer for easy Python development
storey247 Jul 19, 2021
d62ecfa
#1215: Initiate settings before printing the alias
scorphus Jul 18, 2021
072458c
#894: Combine commands with shell.and_ in docker_login rule
dvjn Dec 27, 2020
d292304
#N/A: Replace only exact words when expanding a Git alias
scorphus Jul 13, 2021
e159e84
#994: Replace decoding errors with the replacement marker
scorphus Jul 14, 2021
c05eea1
#1188: Remove only leading whitespace chars from script
scorphus Jul 23, 2021
16fad18
#1184: Configure devcontainer shell with recommended way
scorphus Jul 21, 2021
cfffbab
#618: Fix git_push_without_commits rule
scorphus Jul 28, 2021
309b356
#933: Correctly redefine the function with a cache
scorphus Jul 29, 2021
221a162
#579: Ignore commands of len 1 in missing_space_before_subcommand
scorphus Jul 29, 2021
e52b2dd
#868: Fix outdated link to homebrew for Linux (#1226)
larsblumberg Aug 7, 2021
b704e57
#977: Add `wrong_hyphen_before_subcommand` rule
yotam180 Aug 7, 2021
1ab70d6
#697: Encode expanded script on Python 2
scorphus Aug 1, 2021
22e3043
#1227: Make `git_support` support output-independent rules
scorphus Aug 16, 2021
81b4e93
Use `--user` with pip, not `sudo pip`
benjamin-rood Sep 5, 2021
c639121
Encapsulate force_command in _get_raw_command
nootr Oct 21, 2021
2892555
Bump to 3.32
scorphus Jan 2, 2022
3ed54f6
Updated license date to 2022
anupampatil44 Jan 18, 2022
b037384
fix: Add missing comma
mrshu Jan 29, 2022
9d4b86d
#1279: Add pikaur AUR manager to Arch Linux's commands
Tagadda Mar 27, 2022
6cefb00
#1261: Add two more patterns to sudo rule (#1307)
May 29, 2022
03617ad
#1308: Add updatedb (mlocate) pattern to sudo rule
0xphk Jun 5, 2022
bb9ad13
#N/A: Lock pyte<=0.8.0 for Python 2
scorphus Jun 8, 2022
5462bdd
#1282: Keep quotes in the script on no_command rule
nkakonas Jun 13, 2022
ac31f18
#1290: Update output for brew_update_formula
pyrrolizin Jun 28, 2022
afdac08
#1299: Update output for brew_install and cleanup (#1316)
pyrrolizin Jul 2, 2022
0bf7f5f
#1302: Add new git_clone_missing rule
MaddyGuthridge Jul 3, 2022
96db819
Added Arch based installation (#1319)
deudz Aug 31, 2022
52d7e2e
#N/A: Change workflow triggers
scorphus Aug 31, 2022
c237078
#N/A: Define branches in workflow (#1328)
scorphus Sep 7, 2022
1468770
Add terraform 'no command' rule (#1317)
josepdaniel Sep 25, 2022
09c7dc3
Test on Python 3.10 final
hugovk Nov 23, 2021
725c51c
Drop the dot https://twitter.com/pytestdotorg/status/753767547866972160
hugovk Nov 23, 2021
ddf8770
Update min Python 3 version required in README
hugovk Nov 23, 2021
d802686
Add python_requires to help pip
hugovk Nov 23, 2021
c569ccc
Add support for Python 3.11
hugovk Oct 27, 2022
fded80a
#1248: Run workflows on push and pull_request
scorphus Jul 10, 2023
00f7bb6
#1248: Move deprecated Python versions to separate workflow job
scorphus Jul 10, 2023
0fc338f
#1248: Reuse Docker images in functional tests
scorphus Jul 10, 2023
bb16333
#1248: Check container status before test functions
scorphus Jul 10, 2023
91989e6
#1248: Check for multiple patterns in functional tests
scorphus Jul 10, 2023
105725d
#1248: Skip a failing test when running on Windows
scorphus Jul 10, 2023
86b2a7e
#1248: Use imp only when importlib.util not available
scorphus Jul 10, 2023
bab0f50
#1329: Add support for Windows `CMD` and easier setup for Powershell
gerardog Jul 10, 2023
5430c2c
#N/A: Fix a couple of issues after new flake8 release
scorphus Jul 30, 2023
8a99f77
Fix typos in README.md
AlanGabbianelli Jan 25, 2024
92c8c67
Replace deprecated pkg_resources with importlib.metadata
ianhandy Mar 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 10 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.163.1/containers/python-3/.devcontainer/base.Dockerfile

# [Choice] Python version: 3, 3.9, 3.8, 3.7, 3.6
ARG VARIANT="3"
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}

# [Optional] If your pip requirements rarely change, uncomment this section to add them to the image.
COPY requirements.txt /tmp/pip-tmp/
RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \
&& rm -rf /tmp/pip-tmp
39 changes: 39 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.163.1/containers/python-3
{
"name": "Python 3",
"build": {
"dockerfile": "Dockerfile",
"context": ".."
},

// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.profiles.linux": {
"bash (login)": {
"path": "bash",
"args": ["-l"]
}
},
"python.pythonPath": "/usr/local/bin/python",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8",
"python.formatting.blackPath": "/usr/local/py-utils/bin/black",
"python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf",
"python.linting.banditPath": "/usr/local/py-utils/bin/bandit",
"python.linting.flake8Path": "/usr/local/py-utils/bin/flake8",
"python.linting.mypyPath": "/usr/local/py-utils/bin/mypy",
"python.linting.pycodestylePath": "/usr/local/py-utils/bin/pycodestyle",
"python.linting.pydocstylePath": "/usr/local/py-utils/bin/pydocstyle",
"python.linting.pylintPath": "/usr/local/py-utils/bin/pylint"
},

// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"ms-python.python"
],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "pip3 install -r requirements.txt && python3 setup.py develop"
}
11 changes: 11 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4

[*.py]
max_line_length = 119
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<!-- If you have any issue with The Fuck, sorry about that, but we will do what we
can to fix that. Actually, maybe we already have, so first thing to do is to
update The Fuck and see if the bug is still there. -->

<!-- If it is (sorry again), check if the problem has not already been reported and
if not, just open an issue on [GitHub](https://github.com/nvbn/thefuck) with
the following basic information: -->

The output of `thefuck --version` (something like `The Fuck 3.1 using Python
3.5.0 and Bash 4.4.12(1)-release`):

FILL THIS IN

Your system (Debian 7, ArchLinux, Windows, etc.):

FILL THIS IN

How to reproduce the bug:

FILL THIS IN

The output of The Fuck with `THEFUCK_DEBUG=true` exported (typically execute `export THEFUCK_DEBUG=true` in your shell before The Fuck):

FILL THIS IN

If the bug only appears with a specific application, the output of that application and its version:

FILL THIS IN

Anything else you think is relevant:

FILL THIS IN

<!-- It's only with enough information that we can do something to fix the problem. -->
68 changes: 68 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Tests

on: [push, pull_request]

env:
PYTHON_LATEST: "3.11"

jobs:
test:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12-dev"]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Cache dependencies
id: cache-deps
uses: actions/cache@v2
with:
path: |
${{ env.pythonLocation }}/bin/*
${{ env.pythonLocation }}/lib/*
${{ env.pythonLocation }}/scripts/*
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('setup.py', 'requirements.txt') }}
- name: Install The Fuck with all dependencies
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
pip install -Ur requirements.txt coveralls
python setup.py develop
- name: Lint
if: matrix.os == 'ubuntu-latest' && matrix.python-version == env.PYTHON_LATEST
run: flake8
- name: Run tests
if: matrix.os != 'ubuntu-latest' || matrix.python-version != env.PYTHON_LATEST
run: coverage run --source=thefuck,tests -m pytest -v --capture=sys tests
- name: Run tests (including functional)
if: matrix.os == 'ubuntu-latest' && matrix.python-version == env.PYTHON_LATEST
run: |
docker build -t thefuck/python3 -f tests/Dockerfile --build-arg PYTHON_VERSION=3 .
docker build -t thefuck/python2 -f tests/Dockerfile --build-arg PYTHON_VERSION=2 .
coverage run --source=thefuck,tests -m pytest -v --capture=sys tests --enable-functional
- name: Post coverage results
if: matrix.os == 'ubuntu-latest' && matrix.python-version == env.PYTHON_LATEST
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: coveralls --service=github
test-deprecated:
strategy:
matrix:
python-version: ["2.7", "3.6"]
runs-on: ubuntu-latest
container: python:${{ matrix.python-version }}
steps:
- uses: actions/checkout@v2
- name: Install The Fuck with all dependencies
run: |
pip install -Ur requirements.txt coveralls
python setup.py develop
- name: Lint
run: flake8
- name: Run tests
run: coverage run --source=thefuck,tests -m pytest -v --capture=sys tests
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,6 @@ target/

.env
.idea

# vim temporary files
.*.swp
9 changes: 0 additions & 9 deletions .travis.yml

This file was deleted.

92 changes: 92 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Report issues
If you have any issue with The Fuck, sorry about that, but we will do what we
can to fix that. Actually, maybe we already have, so first thing to do is to
update The Fuck and see if the bug is still there.

If it is (sorry again), check if the problem has not already been reported and
if not, just open an issue on [GitHub](https://github.com/nvbn/thefuck) with
the following basic information:
- the output of `thefuck --version` (something like `The Fuck 3.1 using
Python 3.5.0`);
- your shell and its version (`bash`, `zsh`, *Windows PowerShell*, etc.);
- your system (Debian 7, ArchLinux, Windows, etc.);
- how to reproduce the bug;
- the output of The Fuck with `THEFUCK_DEBUG=true` exported (typically execute
`export THEFUCK_DEBUG=true` in your shell before The Fuck);
- if the bug only appears with a specific application, the output of that
application and its version;
- anything else you think is relevant.

It's only with enough information that we can do something to fix the problem.

# Make a pull request
We gladly accept pull request on the [official
repository](https://github.com/nvbn/thefuck) for new rules, new features, bug
fixes, etc.

# Developing

In order to develop locally, there are two options:

- Develop using a local installation of Python 3 and setting up a virtual environment
- Develop using an automated VSCode Dev Container.

## Develop using local Python installation

[Create and activate a Python 3 virtual environment.](https://docs.python.org/3/tutorial/venv.html)

Install `The Fuck` for development:

```bash
pip install -r requirements.txt
python setup.py develop
```

Run code style checks:

```bash
flake8
```

Run unit tests:

```bash
pytest
```

Run unit and functional tests (requires docker):

```bash
pytest --enable-functional
```

For sending package to pypi:

```bash
sudo apt-get install pandoc
./release.py
```

## Develop using Dev Container

To make local development easier a [VSCode Devcontainer](https://code.visualstudio.com/docs/remote/remote-overview) is included with this repository. This will allows you to spin up a Docker container with all the necessary prerequisites for this project pre-installed ready to go, no local Python install/setup required.

### Prerequisites

To use the container you require:
- [Docker](https://www.docker.com/products/docker-desktop)
- [VSCode](https://code.visualstudio.com/)
- [VSCode Remote Development Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack)
- [Windows Users Only]: [Installation of WSL2 and configuration of Docker to use it](https://docs.docker.com/docker-for-windows/wsl/)

Full notes about [installation are here](https://code.visualstudio.com/docs/remote/containers#_installation)

### Running the container

Assuming you have the prerequisites:

1. Open VSCode
1. Open command palette (CMD+SHIFT+P (mac) or CTRL+SHIFT+P (windows))
1. Select `Remote-Containers: Reopen in Container`.
1. Container will be built, install all pip requirements and your VSCode will mount into it automagically.
1. Your VSCode and container now essentially become a throw away environment.
22 changes: 22 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
The MIT License (MIT)
=====================

Copyright (c) 2015-2022 Vladimir Iakovlev

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include LICENSE.md
include fastentrypoints.py
Loading