Commit graph

5393 commits

Author SHA1 Message Date
Paul Gauthier (aider)
67c4df09fd feat: create virtual environment for aider installation
The changes in this commit create a virtual environment for the aider application in the Docker image. The key changes are:

1. Removes the permission-related commands that were modifying system directories.
2. Creates a virtual environment at `/venv` and adds it to the PATH.
3. Installs aider and its dependencies into the virtual environment.
4. Updates the ENTRYPOINT to use the aider executable from the virtual environment.
5. Copies the aider source to a temporary directory (`/tmp/aider`) for installation, then removes it after installation.

These changes should address the concerns about modifying system permissions while still allowing the container to function properly for different users.
2024-07-31 10:14:29 -03:00
Paul Gauthier
03243e354b Add attribution for conventional commits text 2024-07-31 10:12:25 -03:00
Paul Gauthier
c822a8093a copy 2024-07-31 10:04:14 -03:00
Paul Gauthier
48e831d651 set perms on /.cache 2024-07-31 10:04:08 -03:00
Paul Gauthier
dd166a1492 copy 2024-07-31 09:56:52 -03:00
Paul Gauthier
745c0fcfef feat(docker): add support for running as non-root user
The changes in this commit add support for running the Docker container as a non-root user. Specifically:

- Set permissions on the /.aider and /app directories to allow read/write/execute access for all users.
- Configure Git to consider the /app directory as a safe directory, which prevents Git from complaining about unusual permissions when running as a non-root user.
- Ensure that the Python site-packages directory and other relevant directories have read/write/execute permissions for all users, so that pip installs work even when running as a non-root user.

These changes will allow the Docker container to be run with the `--user` flag, which is a common requirement for running containers in production environments.
2024-07-31 09:52:53 -03:00
Paul Gauthier
1aaa8365d2 more debug if pip installs fail 2024-07-31 09:52:41 -03:00
Paul Gauthier
080953760f formatting 2024-07-31 09:52:18 -03:00
Paul Gauthier (aider)
5bfedea9ff feat: update test to correctly access message content
The test for `test_get_commit_message_with_custom_prompt` has been updated to correctly access the message content from the positional arguments of the `simple_send_with_retries` function call. This ensures that the test accurately reflects the implementation in the `GitRepo` class.
2024-07-31 09:51:28 -03:00
Paul Gauthier
2212613c47 feat(repo): add support for multiple models in get_commit_message 2024-07-31 09:51:26 -03:00
Paul Gauthier (aider)
7d2f184b36 feat: add tests for commit_prompt functionality
The new test case `test_get_commit_message_with_custom_prompt` ensures that when a custom `commit_prompt` is provided to the `GitRepo` constructor, it's used instead of the default prompt when generating commit messages. The test checks that:

1. The custom commit prompt is passed correctly to the `simple_send_with_retries` function.
2. The returned commit message is as expected.
3. The `simple_send_with_retries` function is called only once (since we're using a single model).

This new test case, along with the existing `test_get_commit_message_no_strip_unmatched_quotes` test, provides better coverage for the `get_commit_message` method in the `GitRepo` class.
2024-07-31 09:50:34 -03:00
Paul Gauthier (aider)
f85a9c1195 feat: add commit_prompt parameter to Coder.__init__ and pass it to GitRepo
The commit_prompt parameter is added to the Coder.__init__ method and passed to the GitRepo initialization. This allows users to provide a custom commit prompt when using the Coder class.
2024-07-31 09:48:54 -03:00
Paul Gauthier (aider)
1275171b90 feat: add support for the new commit_prompt arg to override prompts.commit_system
The GitRepo class in the aider/repo.py file has been updated to support a new `commit_prompt` argument. This allows overriding the default `prompts.commit_system` when generating commit messages.

The changes include:

1. Adding the `commit_prompt` parameter to the `__init__` method of the `GitRepo` class.
2. Storing the `commit_prompt` value in the `self.commit_prompt` attribute.
3. Modifying the `get_commit_message` method to use the `self.commit_prompt` value if it's provided, otherwise falling back to the default `prompts.commit_system`.

This change provides more flexibility in customizing the commit message generation process, allowing users to provide their own custom prompts if needed.
2024-07-31 09:47:49 -03:00
Paul Gauthier (aider)
4dfdddf0d9 feat: add --commit-prompt switch
The new `--commit-prompt` switch allows users to specify a custom prompt for generating commit messages. This feature is implemented by adding the new argument to the argument parser in `aider/args.py` and passing it to the `Coder.create` method in `aider/main.py`.
2024-07-31 09:46:13 -03:00
Paul Gauthier
adfde505d4 feat(docker): add directories and permissions for app and aider 2024-07-31 09:28:09 -03:00
Paul Gauthier
a436568ef5 copy 2024-07-31 09:10:18 -03:00
Paul Gauthier (aider)
e370b7aba3 feat: refactor docker build and release into its own workflow
BREAKING CHANGE: update tag regex to match semver pattern `v[0-9]+.[0-9]+.[0-9]+`

This change separates the concerns of PyPI release and Docker image release into two separate workflows. The original `release.yml` file has been renamed to `PyPI Release` and now only handles the PyPI package release. A new `docker-release.yml` file has been created to handle the Docker image build and push.

Both workflows are now triggered on tags matching the semver pattern `v[0-9]+.[0-9]+.[0-9]+`, which corresponds to tags like `vX.Y.Z`. The Docker-related steps have been moved from the original workflow to the new Docker-specific workflow.

This change ensures that both PyPI and Docker releases are triggered on the same semver-compliant tag pattern, while separating the concerns of the two release processes.
2024-07-31 09:09:15 -03:00
Paul Gauthier
199e25fc16 feat(prompts): Add Conventional Commits guidelines to commit message prompt 2024-07-31 09:06:31 -03:00
Paul Gauthier
e1a9fd69e6 Implement playwright installation with dependencies and use system python executable. 2024-07-31 08:53:21 -03:00
Paul Gauthier
c7884c94f6 Add support for more file types in the blame script 2024-07-31 08:50:49 -03:00
Paul Gauthier
6888b07ea0 Add support for Dockerfiles in the blame script 2024-07-30 20:46:20 -03:00
Paul Gauthier
266f58416c copy 2024-07-30 20:44:29 -03:00
Paul Gauthier
d1e385dea1 Added playwright to aider-full image 2024-07-30 20:44:17 -03:00
Paul Gauthier (aider)
41772ccef6 Ensure ChatSummary has at least one model available and use the first model's max input tokens for summarization 2024-07-30 20:37:30 -03:00
Paul Gauthier (aider)
4fded189f8 Build multi-stage Docker images for core "aider" and full "aider-full" versions 2024-07-30 17:11:12 -03:00
Paul Gauthier
bf4d87d66f Updated HISTORY 2024-07-30 17:06:05 -03:00
Paul Gauthier
fb8afa5228 blame for .scm files too 2024-07-30 17:04:38 -03:00
Paul Gauthier
1677f7ede8 Do general autocomplete if /cmd doesn't have its own 2024-07-30 16:43:29 -03:00
Paul Gauthier (aider)
5d0ba54e07 Refactor get_completions method to extract command completion logic into a separate function 2024-07-30 16:36:13 -03:00
Paul Gauthier
59ad370611 Improve linter error handling by replacing invalid characters and adding error handling for subprocess. 2024-07-30 15:21:01 -03:00
Paul Gauthier
a84cad4a59 Add encoding and error handling to subprocess call in Commands class 2024-07-30 15:19:38 -03:00
Paul Gauthier (aider)
9b129a7f03 Update the subprocess calls to use the specified encoding. 2024-07-30 15:18:51 -03:00
Paul Gauthier
9c406cd176 Add linting for all dirty files in the repository 2024-07-30 15:09:41 -03:00
Paul Gauthier (aider)
07780326b4 Use more efficient method to get all dirty files in cmd_lint 2024-07-30 15:09:04 -03:00
Paul Gauthier
5f9275a3c2 Add dirty tracked files to the list of files to lint 2024-07-30 15:09:03 -03:00
Paul Gauthier
4a3ea08b49 Add OCaml test case for repomap 2024-07-30 15:03:54 -03:00
Paul Gauthier (aider)
795467f206 Update the OCaml tags file to follow the same pattern as the Python tags file. 2024-07-30 15:02:52 -03:00
Paul Gauthier
d24a5feab4 Update the OCaml tags query to improve module and function handling 2024-07-30 15:00:58 -03:00
Paul Gauthier
e6883e1072 Simpler added_files reply message 2024-07-30 14:56:38 -03:00
Paul Gauthier
3dd150608d copy 2024-07-30 12:31:27 -03:00
Paul Gauthier
e2fb2466a9 Improve linter support and repo map coverage for various programming languages. 2024-07-30 12:30:29 -03:00
Paul Gauthier (aider)
74201dd733 Add two new columns to the get_supported_languages_md function: Repo map and Linter, and check the existence of the SCM file and linter support for each language. 2024-07-30 12:26:01 -03:00
Paul Gauthier (aider)
bcd802b6e9 Add retry support for litellm.InternalServerError in the send_with_retries function in aider/sendchat.py. 2024-07-30 12:23:41 -03:00
Paul Gauthier (aider)
cba53bfc22 Add retry support for litellm.InternalServerError 2024-07-30 12:23:33 -03:00
Paul Gauthier
9706002769 Auto commit before lint/test/etc 2024-07-30 12:19:32 -03:00
Paul Gauthier (aider)
0980985338 Add fallback to second model when first model fails in ChatSummary 2024-07-30 12:16:32 -03:00
Paul Gauthier (aider)
963420d16f Initialize ChatSummary with main and weak models 2024-07-30 12:04:31 -03:00
Paul Gauthier (aider)
4fe8cca0e9 Fix ChatSummary to take a list of models and work down the list until one succeeds. 2024-07-30 11:57:36 -03:00
Paul Gauthier
2e4de1a0d3 Add support for multiple models in ChatSummary class 2024-07-30 11:57:34 -03:00
Paul Gauthier
3c04850339 move cog/author to end of leaderboard, was preventing it from showing in nav 2024-07-30 10:33:09 -03:00