From 5a2a28b60963c003e38e90de80dc40dcf44894fd Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee <107522312+lavafroth@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:20:07 +0530 Subject: [PATCH] seagoat: init at 0.50.1 --- pkgs/by-name/se/seagoat/failing_tests.nix | 54 +++++++++++++++++ pkgs/by-name/se/seagoat/package.nix | 74 +++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 pkgs/by-name/se/seagoat/failing_tests.nix create mode 100644 pkgs/by-name/se/seagoat/package.nix diff --git a/pkgs/by-name/se/seagoat/failing_tests.nix b/pkgs/by-name/se/seagoat/failing_tests.nix new file mode 100644 index 000000000000..75ed4e5bbab4 --- /dev/null +++ b/pkgs/by-name/se/seagoat/failing_tests.nix @@ -0,0 +1,54 @@ +[ + # network access + "test_connecting_to_remote_server" + "test_does_not_crash_with_slash_in_request" + "test_query_codebase" + "test_status_endpoint_with_all_files_analyzed" + "test_status_endpoint_with_some_files_not_analyzed" + "test_status_2" + "test_stop" + "test_status_with_json_when_server_running" + "test_server_status_not_running_if_process_does_not_exist" + "test_query_codebase_no_results" + "test_servers_info_includes_version_and_server_details" + "test_query_files_endpoint" + "test_snapshot_results_with_real_repo" + "test_ignores_certain_branches" + "test_analysis_results_are_persisted_between_runs" + "test_damaged_cache_doesnt_crash_app_1" + "test_damaged_cache_doesnt_crash_app_2" + "test_only_returns_supported_file_types" + "test_file_score_is_recalculated_when_needed" + "test_does_not_crash_because_of_non_existent_files" + "test_ignored_files_is_really_ignored" + "test_allows_limiting_how_many_files_are_automatically_analized" + "test_allows_limiting_how_many_files_are_automatically_analized" + "test_allows_limiting_how_many_files_are_automatically_analized" + "test_includes_all_matching_lines_from_line" + "test_search_is_case_insensitive" + "test_respects_file_extension_restrictions" + "test_includes_context_lines_properly" + "test_includes_context_lines_properly" + "test_includes_context_lines_properly" + "test_includes_context_lines_properly" + "test_ripgrep_respects_custom_ignore_patterns" + "test_filters_stop_words" + "test_does_not_filter_stop_words_if_that_is_all_whats_in_the_query" + "test_integration_test_without_color" + "test_integration_test_vimgrep_mode" + "test_integration_test_no_results" + "test_server_is_not_running_error" + "test_server_is_not_running_error" + "test_reverse_ordering" + "test_reverse_ordering" + "test_file_returns_global_metadata_1" + "test_file_returns_global_metadata_2" + "test_important_files_are_analyzed_first" + "test_simple_regexp" + "test_regexp_combined_with_chroma" + "test_returns_file_list_1" + "test_returns_file_list_2" + "test_file_change_many_times_is_first_result" + "test_newer_change_can_beat_frequent_change_in_past" + "test_commit_messages_with_three_or_more_colons" +] diff --git a/pkgs/by-name/se/seagoat/package.nix b/pkgs/by-name/se/seagoat/package.nix new file mode 100644 index 000000000000..de670053596b --- /dev/null +++ b/pkgs/by-name/se/seagoat/package.nix @@ -0,0 +1,74 @@ +{ + lib, + fetchFromGitHub, + python3Packages, + ripgrep, + gitMinimal, +}: + +python3Packages.buildPythonApplication rec { + pname = "seagoat"; + version = "0.50.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "kantord"; + repo = "SeaGOAT"; + tag = "v${version}"; + hash = "sha256-tf3elcKXUwBqtSStDksOaSN3Q66d72urrG/Vab2M4f0="; + }; + + build-system = [ python3Packages.poetry-core ]; + + dependencies = with python3Packages; [ + appdirs + blessed + chardet + flask + deepmerge + chromadb + gitpython + jsonschema + pygments + requests + nest-asyncio + waitress + psutil + stop-words + ]; + + nativeCheckInputs = with python3Packages; [ + pytestCheckHook + freezegun + pytest-asyncio + pytest-mock + pytest-snapshot + gitMinimal + ripgrep + ]; + + disabledTests = import ./failing_tests.nix; + + # require network access + disabledTestPaths = [ + "tests/test_chroma.py" + ]; + + preCheck = '' + export HOME=$(mktemp -d) + git init + ''; + + postInstall = '' + wrapProgram $out/bin/seagoat-server \ + --prefix PATH : "${ripgrep}/bin" + ''; + + meta = { + description = "Local-first semantic code search engine"; + homepage = "https://kantord.github.io/SeaGOAT/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ lavafroth ]; + mainProgram = "seagoat"; + }; +}