)]}'
{"tvix/cli/src/derivation.rs":[{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"39155b40205ac302956fe2a3b94d846a06e0a887","unresolved":true,"context_lines":[{"line_number":81,"context_line":"        // Check for fixed-output derivation keys."},{"line_number":82,"context_line":"        match (input.select(\"outputHash\"), input.select(\"outputHashAlgo\")) {"},{"line_number":83,"context_line":"            (Some(hash), Some(algo)) \u003d\u003e match drv.outputs.get_mut(\"out\") {"},{"line_number":84,"context_line":"                None \u003d\u003e return Err(Error::ConflictingOutputTypes.into()),"},{"line_number":85,"context_line":"                Some(out) \u003d\u003e {"},{"line_number":86,"context_line":"                    out.hash \u003d Some(Hash {"},{"line_number":87,"context_line":"                        algo: algo"}],"source_content_type":"text/x-rustsrc","patch_set":37,"id":"b88aa61d_d3cb3a5d","line":84,"updated":"2023-01-16 23:12:44.000000000","message":"You can probably reuse the errors from cl/7847 here, or simply leave the error path to Derivation::validate().","commit_id":"b83a566ebdc4b47d447c24f534c69d85b718434b"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"94c59911de383b0524d1eb23e80d78027cec9d82","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        // Check for fixed-output derivation keys."},{"line_number":82,"context_line":"        match (input.select(\"outputHash\"), input.select(\"outputHashAlgo\")) {"},{"line_number":83,"context_line":"            (Some(hash), Some(algo)) \u003d\u003e match drv.outputs.get_mut(\"out\") {"},{"line_number":84,"context_line":"                None \u003d\u003e return Err(Error::ConflictingOutputTypes.into()),"},{"line_number":85,"context_line":"                Some(out) \u003d\u003e {"},{"line_number":86,"context_line":"                    out.hash \u003d Some(Hash {"},{"line_number":87,"context_line":"                        algo: algo"}],"source_content_type":"text/x-rustsrc","patch_set":37,"id":"5ccede0c_158472eb","line":84,"in_reply_to":"b88aa61d_d3cb3a5d","updated":"2023-01-20 11:02:45.000000000","message":"Lets tackle this later, down the line I want to clean up the way `Derivation` is constructed to avoid being able to represent so many invalid states in the first place, and that\u0027ll cause a pass over these errors.","commit_id":"b83a566ebdc4b47d447c24f534c69d85b718434b"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"1f169d8db2d31cfb9e94dcfb587add7b2f7cbe59","unresolved":true,"context_lines":[{"line_number":100,"context_line":"            (Some(_), None) | (None, Some(_)) \u003d\u003e return Err(Error::MissingFODFields.into()),"},{"line_number":101,"context_line":"            (None, None) \u003d\u003e {}"},{"line_number":102,"context_line":"        }"},{"line_number":103,"context_line":"        // TODO: outputHashMode? :thonking:"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        for (name, value) in input.clone().into_iter_sorted() {"},{"line_number":106,"context_line":"            if ignore_nulls \u0026\u0026 matches!(*value.force(vm)?, Value::Null) {"}],"source_content_type":"text/x-rustsrc","patch_set":37,"id":"c4755371_37ea99d6","line":103,"updated":"2023-01-17 10:57:43.000000000","message":"yes, we need to pass this along","commit_id":"b83a566ebdc4b47d447c24f534c69d85b718434b"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"08ab4fd304a53d0b5a3ee46bfa3a3a8bf47cd428","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            (Some(_), None) | (None, Some(_)) \u003d\u003e return Err(Error::MissingFODFields.into()),"},{"line_number":101,"context_line":"            (None, None) \u003d\u003e {}"},{"line_number":102,"context_line":"        }"},{"line_number":103,"context_line":"        // TODO: outputHashMode? :thonking:"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        for (name, value) in input.clone().into_iter_sorted() {"},{"line_number":106,"context_line":"            if ignore_nulls \u0026\u0026 matches!(*value.force(vm)?, Value::Null) {"}],"source_content_type":"text/x-rustsrc","patch_set":37,"id":"6a7ab0fe_9204927c","line":103,"in_reply_to":"c4755371_37ea99d6","updated":"2023-01-22 22:52:35.000000000","message":"Done","commit_id":"b83a566ebdc4b47d447c24f534c69d85b718434b"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"39155b40205ac302956fe2a3b94d846a06e0a887","unresolved":true,"context_lines":[{"line_number":197,"context_line":"        }"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        // At this point, derivation fields are fully populated from"},{"line_number":200,"context_line":"        // eval data structures."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        let tmp_replacement_str \u003d"},{"line_number":203,"context_line":"            drv.calculate_drv_replacement_str(|drv| known_paths.get_replacement_string(drv));"}],"source_content_type":"text/x-rustsrc","patch_set":37,"id":"a0c7708f_963a7f95","line":200,"updated":"2023-01-16 23:12:44.000000000","message":"My proposal would be to call `validate(false)` from cl/7848 here for the error path.","commit_id":"b83a566ebdc4b47d447c24f534c69d85b718434b"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"94c59911de383b0524d1eb23e80d78027cec9d82","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        }"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        // At this point, derivation fields are fully populated from"},{"line_number":200,"context_line":"        // eval data structures."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        let tmp_replacement_str \u003d"},{"line_number":203,"context_line":"            drv.calculate_drv_replacement_str(|drv| known_paths.get_replacement_string(drv));"}],"source_content_type":"text/x-rustsrc","patch_set":37,"id":"d6ef7791_dbe398c7","line":200,"in_reply_to":"a0c7708f_963a7f95","updated":"2023-01-20 11:02:45.000000000","message":"Done","commit_id":"b83a566ebdc4b47d447c24f534c69d85b718434b"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"39155b40205ac302956fe2a3b94d846a06e0a887","unresolved":true,"context_lines":[{"line_number":205,"context_line":"        drv.calculate_output_paths(\u0026name, \u0026tmp_replacement_str)"},{"line_number":206,"context_line":"            .map_err(|err| Error::InvalidDerivation(err.to_string()))?;"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        drv.validate()"},{"line_number":209,"context_line":"            .map_err(|err| Error::InvalidDerivation(err.to_string()))?;"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        let actual_replacement_str \u003d"}],"source_content_type":"text/x-rustsrc","patch_set":37,"id":"39290ff8_e8b5c58d","line":208,"updated":"2023-01-16 23:12:44.000000000","message":"… and not call validate() here anymore, because it\u0027d only validate changes that `calculate_output_paths` would have done, and these are correct.","commit_id":"b83a566ebdc4b47d447c24f534c69d85b718434b"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"94c59911de383b0524d1eb23e80d78027cec9d82","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        drv.calculate_output_paths(\u0026name, \u0026tmp_replacement_str)"},{"line_number":206,"context_line":"            .map_err(|err| Error::InvalidDerivation(err.to_string()))?;"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        drv.validate()"},{"line_number":209,"context_line":"            .map_err(|err| Error::InvalidDerivation(err.to_string()))?;"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        let actual_replacement_str \u003d"}],"source_content_type":"text/x-rustsrc","patch_set":37,"id":"aebeeb9f_6027e387","line":208,"in_reply_to":"39290ff8_e8b5c58d","updated":"2023-01-20 11:02:45.000000000","message":"Done","commit_id":"b83a566ebdc4b47d447c24f534c69d85b718434b"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"1f169d8db2d31cfb9e94dcfb587add7b2f7cbe59","unresolved":true,"context_lines":[{"line_number":35,"context_line":"        for output in arg {"},{"line_number":36,"context_line":"            let output_name \u003d output.force(vm)?.to_str()?;"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"            if output_name.as_str() \u003d\u003d \"drv\" {"},{"line_number":39,"context_line":"                return Err(Error::InvalidOutputName(output_name.as_str().into()).into());"},{"line_number":40,"context_line":"            }"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rustsrc","patch_set":42,"id":"f98fad99_074d6e18","line":38,"updated":"2023-01-17 10:57:43.000000000","message":"Let me move this to Derivation::validate (done in cl/7850)","commit_id":"b86785b1e92d8d1b133937112f35baca69708be1"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"94c59911de383b0524d1eb23e80d78027cec9d82","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        for output in arg {"},{"line_number":36,"context_line":"            let output_name \u003d output.force(vm)?.to_str()?;"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"            if output_name.as_str() \u003d\u003d \"drv\" {"},{"line_number":39,"context_line":"                return Err(Error::InvalidOutputName(output_name.as_str().into()).into());"},{"line_number":40,"context_line":"            }"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rustsrc","patch_set":42,"id":"85c5633e_0dab10a8","line":38,"in_reply_to":"f98fad99_074d6e18","updated":"2023-01-20 11:02:45.000000000","message":"Done","commit_id":"b86785b1e92d8d1b133937112f35baca69708be1"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"1f169d8db2d31cfb9e94dcfb587add7b2f7cbe59","unresolved":true,"context_lines":[{"line_number":39,"context_line":"                return Err(Error::InvalidOutputName(output_name.as_str().into()).into());"},{"line_number":40,"context_line":"            }"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"            // TODO: further validate output name"},{"line_number":43,"context_line":"            if let Some(_) \u003d outputs.insert(output_name.as_str().into(), Default::default()) {"},{"line_number":44,"context_line":"                return Err(Error::DuplicateOutput(output_name.as_str().into()).into());"},{"line_number":45,"context_line":"            }"}],"source_content_type":"text/x-rustsrc","patch_set":42,"id":"5bac8977_aa6a2d42","line":42,"updated":"2023-01-17 10:57:43.000000000","message":"Already covered by Derivation::validate()","commit_id":"b86785b1e92d8d1b133937112f35baca69708be1"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"94c59911de383b0524d1eb23e80d78027cec9d82","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                return Err(Error::InvalidOutputName(output_name.as_str().into()).into());"},{"line_number":40,"context_line":"            }"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"            // TODO: further validate output name"},{"line_number":43,"context_line":"            if let Some(_) \u003d outputs.insert(output_name.as_str().into(), Default::default()) {"},{"line_number":44,"context_line":"                return Err(Error::DuplicateOutput(output_name.as_str().into()).into());"},{"line_number":45,"context_line":"            }"}],"source_content_type":"text/x-rustsrc","patch_set":42,"id":"e3ec3d28_dc1d8989","line":42,"in_reply_to":"5bac8977_aa6a2d42","updated":"2023-01-20 11:02:45.000000000","message":"Ack","commit_id":"b86785b1e92d8d1b133937112f35baca69708be1"},{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"a614ef0a1bab997a22f513af7c32a3e1c51dc686","unresolved":true,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        // Each output name needs to exist in the environment, at this"},{"line_number":189,"context_line":"        // point initialised as an empty string because that is the"},{"line_number":190,"context_line":"        // way of Golang ;)"},{"line_number":191,"context_line":"        for output in drv.outputs.keys() {"},{"line_number":192,"context_line":"            if let Some(_) \u003d drv.environment.insert(output.to_string(), String::new()) {"},{"line_number":193,"context_line":"                return Err(Error::ShadowedOutput(output.to_string()).into());"}],"source_content_type":"text/x-rustsrc","patch_set":49,"id":"3e5ea042_c7622fc1","line":190,"updated":"2023-01-23 10:16:01.000000000","message":"this is not golang ;-)","commit_id":"4aa5bd319381398c9544e4489ce420b407aa3b26"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"9f1d40174702a36d6e95a88177e41390116410a8","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        // Each output name needs to exist in the environment, at this"},{"line_number":189,"context_line":"        // point initialised as an empty string because that is the"},{"line_number":190,"context_line":"        // way of Golang ;)"},{"line_number":191,"context_line":"        for output in drv.outputs.keys() {"},{"line_number":192,"context_line":"            if let Some(_) \u003d drv.environment.insert(output.to_string(), String::new()) {"},{"line_number":193,"context_line":"                return Err(Error::ShadowedOutput(output.to_string()).into());"}],"source_content_type":"text/x-rustsrc","patch_set":49,"id":"0674aad9_c5f38009","line":190,"in_reply_to":"3e5ea042_c7622fc1","updated":"2023-01-23 11:59:33.000000000","message":"That\u0027s the joke!","commit_id":"4aa5bd319381398c9544e4489ce420b407aa3b26"}],"tvix/derivation/src/derivation.rs":[{"author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"f8deee4efba9e808d3fc8a453af446e4072df97a","unresolved":true,"context_lines":[{"line_number":7,"context_line":"use tvix_store::nixbase32::NIXBASE32;"},{"line_number":8,"context_line":"use tvix_store::store_path::{ParseStorePathError, StorePath, STORE_DIR};"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"#[derive(Clone, Debug, Default, Eq, PartialEq, Serialize, Deserialize)]"},{"line_number":11,"context_line":"pub struct Derivation {"},{"line_number":12,"context_line":"    #[serde(rename \u003d \"args\")]"},{"line_number":13,"context_line":"    pub arguments: Vec\u003cString\u003e,"}],"source_content_type":"text/x-rustsrc","patch_set":5,"id":"1a0088cf_a3dc0647","line":10,"updated":"2023-01-06 22:21:01.000000000","message":"Can you drop this and rebase on top of cl/7788?","commit_id":"5d295e194d1ff245800998d27d5d679de2efc9df"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"50ef87a788a217e621c744831ee2c4a5997e6a84","unresolved":false,"context_lines":[{"line_number":7,"context_line":"use tvix_store::nixbase32::NIXBASE32;"},{"line_number":8,"context_line":"use tvix_store::store_path::{ParseStorePathError, StorePath, STORE_DIR};"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"#[derive(Clone, Debug, Default, Eq, PartialEq, Serialize, Deserialize)]"},{"line_number":11,"context_line":"pub struct Derivation {"},{"line_number":12,"context_line":"    #[serde(rename \u003d \"args\")]"},{"line_number":13,"context_line":"    pub arguments: Vec\u003cString\u003e,"}],"source_content_type":"text/x-rustsrc","patch_set":5,"id":"74147f21_ead51634","line":10,"in_reply_to":"1a0088cf_a3dc0647","updated":"2023-01-08 11:49:36.000000000","message":"Ack","commit_id":"5d295e194d1ff245800998d27d5d679de2efc9df"}]}
