Commit graph

40 commits

Author SHA1 Message Date
Yannik Sander 078c68764b
Ignore result data (#407) 2021-12-31 16:37:02 +01:00
Yannik Sander 5d965dd10c
Be more strict about model changes (#406) 2021-12-31 15:34:51 +01:00
Yannik Sander af3b494217
Flake support/frontend (#324)
* Setup flake info extraction

Prepare data model fro derivations (#1)

Add flake info data (#1)

Implement fetching general flake info (#1)

Expose CLI (#1)

Keep cargo happy

Add some doc comments

Pin to local nixpkgs to excessive downloads

Extend visibility of some data objects

Add command to extract infomation about defivations (#1)

Add call new feature in main (#1)

Include more information in derivation (#1)

Add log access

Always debug log stderr from nix

Format nix script

Collect systems per package

Remove unnecessary imports

Create flake

Remove top level version field

Represent collected systems/version pairs in rust

Fix quotation marks in tests

Add correct cargo hash

Add iconv dependency

Return a list from nix script

Export as json

Undo version by platform distinction

Remove nixpkgs override

Apply cargo fmt

Flatten export structure

Allow for complex licenses

Prepare using a central nix file

Implement nix part o accessing apps

Include the correct filename

Add accessor for `all` key

Access all available information by default

Track more information about Apps

Run cargo fmt

Fix: allow local builds

Prepare next version of the flake info tool

Include examples and pull script

Expose flake info as library

Include thiserror for custom errors

Define a source data type

Collects source types and their metadata, collected in a json file

Add command line argument for input files

Mutually exclusive with --flake

Refactor functions to extract information given a flake identifier

Add kind specifier as CLI argument

Amend Argument parsing to require eiteher flake or targets to be defined

Run extraction for specified flake or list of flakes as specified in a json file

Resolves #5
References #7

Use internal tag to distnguich target types

Include target falg usage in examples

Set include provided source if available (resolves #9)

Resolve flake name

Update examples

Dont include empty license or description

Fix a misfomatting in cargot.toml

Add elastic dependencies

Implement a wrapper around the elasticsearch client

Implements pushing exports (#4)

Temporarily skip serializing an unimplemented field in elastic output

Extract reading source list files from binary

Add lazy_static as dependency

Implement createing and pushing to elastic index

Add elastic options

Provide default name and env falbac for elastic index

Modify app binary and type as optionals

App can be a derivation too

Update examples

Add more elastic commands

Supported:
- ensure
- clear
- push

Rename elastic search config struct

Add elastic push support to binary

Rename flag to enable elastic push

Imporve error messages and format binary source

Fix nix file incorrectly expecting meta fields

Changing flake descriotions to an optional field

deserialize git_ref as hash

Implement temporary stores and gc of these

prevents flakes from accessing store paths

Pass extra arguments to nix

Update cargo hash and skip integration tests

Move flake.nix to root folder and add apps for all components

Fix command invocation that fails test

Update README(s)

Add help for extra arguments

(cherry picked from commit be4bc3dd929178bef66114c2201aaa88e47e9add)

* Safely read legacyPackages

* Read nixosOptions from flake

* Update ES Mapping

* Show more detailed error and backtrace if available

* Try reading options only if key  is defined

* Format nix script

* Add error context when attempting deserialization

* Fix derivation representation to fit nix output

* Add push elasticsearch settings

* Add Flake channel

* Rename import module

* Remove Flakes Channel

* Prepare nixpkgs import

* Separate import/export types

* Break up nixpkgs package representation

* Use the same naming scheme for Nixpkgs entries and flake entries

* Document import module

* Remove serialization attributes

* Reversable type and SerDe implemetation

* Add *_reverse fields

* Unpublicating export fields

* Read from  NixOption struct

* serialize empty fields as null

* Tag export json variants

* Serialize a single option-declaration

* Format npkgs parse test

* Define NixOption

Sorry thats too late..

* Parse system key

* Make Package output compatible with the frontend

* Add Url-only licesnse variant

* Add StringOrStruct type

* Add accessor method for elements catched by OneOrMany

* New utility to flatten in homogenous lists recursively

* Add Maintainer type catching maintaiers used in nixpkgs

* Format Implementatio n

* Remove explicit representation of platforms

* Open nixpkgs parser to cover all packages

* Convert all imported fields to their export representation

* Define reverse fields in ES schema

* Format nixpkgs command runner

* Expose shorthand to pull a specific channel by command line

* Extract utility functions into their own module

* Implement AttributeQuery generation

* Integrate query in export

* Implement *_set attributes

* Document purpose of export module

* Use more descriptive github blob route

* Complete Option Export representation

Reuse the same option type for nixpkgs and flakes

* Enable nixpkgs option import

* Expose nixpkgs option import functions and integrate in binary

* Chunk ElasticSearch Bulk operations

* Address Example/Default field formatting

* Add abort strategy for existing indices

* New command line interface using subcommands

* Document new interface

* Bump version

* Add nixpkgs cron job

* More precise name for nixpkgs cron job

* Add Flakes cron job

* Read version from file and fix channel names

* Correct file names for flake group import

* Fix group command

* Run new cron jobs on PR

* Update Cargo sources

* Integrate new flakes route

* Add search type option

* Add flake types and messages

* Add flake types

* Extract Request body builders and expose more types

* Combine Package and Option Search

* Factor out html body

* Dispatch messages by search type to flake page

* Correct type naming

* Remove Debug instructions and unimplemented flake search type

* Do not reload Flake search page while the search subject is unchanged

* Implement switching subjects

* Fix init type signature

* Add url/git based flakes to mapping

* Parse flake info

* Link to flake repo and show flake maintainer

* Fix optional decoded values

* Add group and type as search buckts

* Show search selection in all cases

* Move flake decoding to search

* Show flake information for options

* Hardcode flakesearch to only search a specified flake index

* Improve experimental state notice

* Fix category select not present in some cases

* Change default flake index

* Show correct category title

* Add missing imports

* Serialize more optional fields as null

* elastic-test.rs file not needed anymore

* names of the workflows should be immediately obvious.

* better jobs names

* rename the flakes group

* need to provide --elastic-schema-version via the cli option

* typo

* Fix errors in workflow files

* Install flake enabled nix by default

* Fix variable substitution

* Use string group names

* Provide elastic schema verion only through cli

* Fix scheduled task name

* Improve error reporting

* Allow insecure packages here

* Add missing imports

* Tree-wide: cargo-fmt

* only import nixpkgs for now

* no importing of flakes

* also bump a version

* fixing cron-flakes.yml

* make it obvious that this is for frontend

* missed this when merging

* Extract hashes

- Split out revision info from flakes
- Retrieve current nixpkgs revision from github

* Write aliases, enabled by default

* Filter additional platforms

* Change alias structure

* expect channel like nixpkgs identifiers

* Don't cause error if push is aborted

* Specify correct channel identifier

* Allow options to evaluate unfree packages

* Retrieve and delete specific aliases

* Specify import path correclty

* Fix channel warmup

* Abort push if channel already indexed

* Remove debug pr hook for import action

* Fix indentation by tab

* Make flakes show again

* Fix import group naming in flake wrokflow

* Rename flake group to match imported index

* Run nixpkgs import on pr activity (Debugging behavior)

* Just show literal Examples, resolves #336

* Use actual nixpkgs branch names

* Trim derivation/option declaration path, resolves #335

Remove /nix/store/*-source prefix

* Fix sidebar width and close button position

* Placeholder texts in flake result area

* Show flake install info

* Don't show package/option selection before search

* Make sure install command for nixos is always shown

* Add toml source config support

* Rewrite current example flake group as toml

* Update flake cron job

* flake-info: use saner nix packaging method

When trying to first work in this I naive approached it with
`nix-shell`. That of course lead to the fixed output bollocks failing
with a hash mismatch. By making use of the `cargoLock` attribute on
`buildRustPackage` we can tame the FOD-beast and only have to provide
one hash manually for a single package (that we fetch from a GitHub
repository).

This also means that updating dependencies will be simpler as the native
Cargo.lock file can be used.

(cherry picked from commit c3a0e46d1eb56e128e6923e6c493eb836fc81e85)

* Update flake lock file

* Do not build python import script

* add flake names to the title as well

* Disable debug imports on prs

Co-authored-by: Rok Garbas <rok@garbas.si>
Co-authored-by: Andreas Rammhold <andreas@rammhold.de>
2021-08-26 00:40:42 +02:00
Yannik Sander 5ad71362e5
Rewrite import script in Rust (#320) 2021-08-17 10:55:08 +02:00
Andreas Rammhold e9bdeae3e2
Remove the defunct "burger menu" and always expand the navigation (#273)
I commonly run into a situation where the burger menu button is being
showed to me but it broke some time ago and doesn't expand the menu
anymore.

Since the snipped was probably mostly 1:1 translated from the old
nixos.org page (where we had more links than just the three we have now)
we can probably just remove it now. It is a net win as the feature was
broken and at least now you can use the website on mobile again.
2021-01-25 17:52:12 +01:00
Rok Garbas 5bb94c9c92
Adds faceted search (#261) 2021-01-23 17:25:43 +01:00
Bradley Walters bae5a92131
Fix redirect from / to /packages breaking browser back button (#248)
Previously, navigating to https://search.nixos.org/ would use history.pushState
to redirect to /packages and add a new entry to the browser history.
This meant that if you pressed the back button, you would navigate back to /
which would of course then redirect to /packages again.

Now history.replaceState is used instead of pushState, so the / history entry
is replaced entirely by a /packages history entry and the back button works.
2020-12-07 08:53:56 +01:00
Marek Fajkus 060daed760
Refactor the loading and request management (#230) 2020-11-29 00:02:59 +01:00
Marek Fajkus 29f5f02a16
Discard effects when routing only query params (#229)
fixes #225
2020-11-19 00:49:15 +01:00
Marek Fajkus fe04d9b14e
Refactor route structure (#219) 2020-10-30 19:13:55 +01:00
Marek Fajkus 2de4ef3bda
Remove cleanUrl and fragment hack (#216) 2020-10-29 00:38:46 +01:00
Marek Fajkus e412085ea8
Support search engine escaping of spaces (+) (#215) 2020-10-28 19:51:01 +01:00
Rok Garbas 2a441c95d9
when wrong channel is selected (via url) show error (#178) 2020-09-03 21:03:17 +02:00
Rok Garbas e4fec33f2b
Dont reload when showing result item details (#152)
fixes #148
fixes #142

also adding missing fields to package details view
2020-08-21 22:23:37 +02:00
Rok Garbas cbaf978394
add link to issues tracker (#144)
fixes #138
2020-08-07 14:44:19 +02:00
Rok Garbas 44cbea8547
remove suggestions feature (#141) 2020-07-24 23:01:16 +02:00
Rok Garbas cc5e4a540d
Allow to show results alphabetically (#133)
fixed #119
2020-07-10 09:49:43 +02:00
Rok Garbas 9b796191a5
Better define the page we are on (#126)
fixes #124
2020-07-09 18:07:07 +02:00
Rok Garbas 3dceb99740
add burger icon to show collapsed navbar when on mobile (#111) 2020-07-02 15:00:54 +02:00
adisbladis 1f8939b3af
Suggestions for search field (#74) 2020-07-02 14:27:49 +02:00
Rok Garbas 6992416c5a
List channel as button group (#98)
also fixes problem showing result when query is empty string

fixes #92
2020-06-12 12:57:47 +02:00
Rok Garbas 2daa4b0d8b
Fix title of the app before it loads (#97)
and improve window title per page

fixes #93
2020-06-12 12:20:28 +02:00
Rok Garbas f3139f56bf
Fixes wonky selection of item in search result (#90)
fixes #62
2020-06-11 18:29:51 +02:00
Rok Garbas 007eee127e
Make sure that we dont trap users on search.nixos.org (#87)
and that there is a nice way back to main website
also the navigation is now the same hight as on nixos.org

fixes #59
2020-06-11 09:14:21 +02:00
Rok Garbas 12bea73597
user attr_name and option_name for showDetailsFor (#83)
fixes #61

showDetailsFor -> show
2020-06-10 14:15:54 +02:00
Rok Garbas 6905ea40dd
Preserve search options between packages and options search page (#82) 2020-06-10 14:03:44 +02:00
Rok Garbas ec5839f9fd
adding a footer and a thank you to bonsai (#57) 2020-06-05 01:13:52 +02:00
adisbladis 0a6369ea86
improve nixos options search (#55)
Co-authored-by: Rok Garbas <rok@garbas.si>
2020-06-04 01:33:54 +02:00
Rok Garbas ae670990dd
use one index per channel (#54) 2020-06-03 21:02:12 +02:00
Rok Garbas ce2121e30e
channel drowdown (#21) 2020-05-11 22:42:57 +02:00
Rok Garbas c47f1c0ccb
Pagination of search results (#20) 2020-05-11 21:56:10 +02:00
Rok Garbas 99eae108c7
search on page load and on second search query, fixes #5 (#8) 2020-05-08 23:59:14 +02:00
Rok Garbas f25b287926
make request to the right search page, fixes #4 (#7) 2020-05-08 16:56:14 +02:00
Rok Garbas 387d70eaa3
somehow in a working starte with bugs and missing features 2020-05-08 15:24:58 +02:00
Rok Garbas 824e37026f
deploy to netlify (#1) 2020-04-10 11:04:03 +02:00
Rok Garbas 40bd247ee9
add style to the search result 2020-04-10 10:13:50 +02:00
Rok Garbas f19216fe5a
make a request to elasticsearch, nothing fancy 2020-04-07 07:05:50 +02:00
Rok Garbas 7ba9487c30
add model for package and option result 2020-03-31 05:22:27 +02:00
Rok Garbas ea09e01c89
init work on search 2020-03-31 02:59:06 +02:00
Rok Garbas 8077030139
intial version of elm+webpack setup 2020-03-28 05:09:01 +01:00