Record refactor

This PR requires the following additional PRs:

biothings/call-apis.js/pull/50
biothings/bte_trapi_query_graph_handler/pull/101

Refactor 'records' objects into a formal Record class, with support for easy conversion to JSON and the ability to easily produce test records from scratch with minimal required information.
The Record class stores information in a few key objects, and exposes a variety of getters to make retrieving information more intuitive. The main internal information is as follows:

apiEdge: The APIEdge used to generate the sub-query which returned this record.
qXEdge: The QueryExecutionEdge representing the original BTE query edge.
mappedResponse: Any mapped response information from the sub-query response, such as edge-attributes.
subject | object.normalizedInfo: SRI Node normalizer information about the subject/object of the record.

The Record's getters and setters match the structure of a FrozenRecord, which is a Record's serialized JSON representation (simplified version below):
interface FrozenRecord {
  subject: FrozenNode;
  object: FrozenNode;
  predicate?: string;
  publications?: string[];
  recordHash?: string;
  api?: string;
  apiInforesCurie?: string;
  metaEdgeSource?: string;
  mappedResponse?: {
    'edge-attributes'?: EdgeAttribute[];
    [mappedItems: string]: any;
  }
}

interface FrozenNode {
  original: string;
  normalizedInfo?: NodeNormalizerResultObj[];
  qNodeID: string;
  isSet: boolean;
  curie: string;
  UMLS: string;
  semanticType: string;
  label: string;
  equivalentCuries?: string[];
  names: string[];
  attributes: any;
}

When 'freezing' a Record, all information is preserved, with the exception of apiEdge, which can be reconstructed from getter properties, and qXEdge, which is not (yet) serializable, changes between BTE queries, and can be partially reconstructed from getter properties.
While freezing a Record preserves a large amount of information, a Record may be constructed from incredibly minimal information depending on what is required for a test. Additionally, when creating a record, a new apiEdge and qXEdge may be supplied to produce a more complete Record instance. Below are two example frozen records:

A complete FrozenRecord from an actual query
{
  "subject": {
    "original": "NCBIGene:3778",
    "normalizedInfo": [
      {
        "id": { "identifier": "NCBIGene:3778", "label": "KCNMA1" },
        "equivalent_identifiers": [
          { "identifier": "NCBIGene:3778", "label": "KCNMA1" },
          { "identifier": "ENSEMBL:ENSG00000156113" },
          { "identifier": "HGNC:6284", "label": "KCNMA1" },
          { "identifier": "OMIM:600150" },
          { "identifier": "UMLS:C1416602", "label": "KCNMA1 gene" },
          {
            "identifier": "UniProtKB:A0A087WZL8",
            "label": "A0A087WZL8_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000482747" },
          {
            "identifier": "UniProtKB:A0A1W2PP94",
            "label": "A0A1W2PP94_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000491418" },
          {
            "identifier": "UniProtKB:A0A1W2PPY5",
            "label": "A0A1W2PPY5_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000491673" },
          {
            "identifier": "UniProtKB:A0A1W2PQK5",
            "label": "A0A1W2PQK5_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000492005" },
          {
            "identifier": "UniProtKB:A0A1W2PQU4",
            "label": "A0A1W2PQU4_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000491920" },
          {
            "identifier": "UniProtKB:A0A1W2PR56",
            "label": "A0A1W2PR56_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000492492" },
          {
            "identifier": "UniProtKB:A0A1W2PR62",
            "label": "A0A1W2PR62_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000492075" },
          {
            "identifier": "UniProtKB:A0A1W2PRN5",
            "label": "A0A1W2PRN5_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000492414" },
          {
            "identifier": "UniProtKB:A0A1W2PSD3",
            "label": "A0A1W2PSD3_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000492806" },
          {
            "identifier": "UniProtKB:B7ZMF5",
            "label": "B7ZMF5_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000491732" },
          {
            "identifier": "UniProtKB:D5MRH1",
            "label": "D5MRH1_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000491555" },
          {
            "identifier": "UniProtKB:Q12791",
            "label": "KCMA1_HUMAN Calcium-activated potassium channel subunit alpha-1 (sprot)"
          },
          {
            "identifier": "PR:Q12791",
            "label": "calcium-activated potassium channel subunit alpha-1 (human)"
          },
          {
            "identifier": "UMLS:C3537389",
            "label": "Calcium-Activated Potassium Channel Subunit Alpha-1"
          },
          {
            "identifier": "UniProtKB:Q59FH2",
            "label": "Q59FH2_HUMAN BK channel (Fragment) (trembl)"
          },
          {
            "identifier": "UniProtKB:Q5SVJ7",
            "label": "Q5SVJ7_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000361520" },
          {
            "identifier": "UniProtKB:S4R453",
            "label": "S4R453_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000475086" }
        ],
        "type": [
          "biolink:Gene",
          "biolink:BiologicalEntity",
          "biolink:NamedThing",
          "biolink:Entity",
          "biolink:GeneOrGeneProduct",
          "biolink:MacromolecularMachineMixin",
          "biolink:GenomicEntity",
          "biolink:ThingWithTaxon",
          "biolink:ChemicalEntityOrGeneOrGeneProduct",
          "biolink:PhysicalEssence",
          "biolink:PhysicalEssenceOrOccurrent",
          "biolink:OntologyClass",
          "biolink:Protein",
          "biolink:Polypeptide",
          "biolink:GeneProductMixin",
          "biolink:ChemicalEntityOrProteinOrPolypeptide"
        ],
        "information_content": 100,
        "primaryID": "NCBIGene:3778",
        "label": "KCNMA1",
        "attributes": {},
        "semanticType": "Gene",
        "_leafSemanticType": "Gene",
        "semanticTypes": [
          "biolink:Gene",
          "biolink:BiologicalEntity",
          "biolink:NamedThing",
          "biolink:Entity",
          "biolink:GeneOrGeneProduct",
          "biolink:MacromolecularMachineMixin",
          "biolink:GenomicEntity",
          "biolink:ThingWithTaxon",
          "biolink:ChemicalEntityOrGeneOrGeneProduct",
          "biolink:PhysicalEssence",
          "biolink:PhysicalEssenceOrOccurrent",
          "biolink:OntologyClass",
          "biolink:Protein",
          "biolink:Polypeptide",
          "biolink:GeneProductMixin",
          "biolink:ChemicalEntityOrProteinOrPolypeptide"
        ],
        "curies": [
          "NCBIGene:3778",
          "ENSEMBL:ENSG00000156113",
          "HGNC:6284",
          "OMIM:600150",
          "UMLS:C1416602",
          "UniProtKB:A0A087WZL8",
          "ENSEMBL:ENSP00000482747",
          "UniProtKB:A0A1W2PP94",
          "ENSEMBL:ENSP00000491418",
          "UniProtKB:A0A1W2PPY5",
          "ENSEMBL:ENSP00000491673",
          "UniProtKB:A0A1W2PQK5",
          "ENSEMBL:ENSP00000492005",
          "UniProtKB:A0A1W2PQU4",
          "ENSEMBL:ENSP00000491920",
          "UniProtKB:A0A1W2PR56",
          "ENSEMBL:ENSP00000492492",
          "UniProtKB:A0A1W2PR62",
          "ENSEMBL:ENSP00000492075",
          "UniProtKB:A0A1W2PRN5",
          "ENSEMBL:ENSP00000492414",
          "UniProtKB:A0A1W2PSD3",
          "ENSEMBL:ENSP00000492806",
          "UniProtKB:B7ZMF5",
          "ENSEMBL:ENSP00000491732",
          "UniProtKB:D5MRH1",
          "ENSEMBL:ENSP00000491555",
          "UniProtKB:Q12791",
          "PR:Q12791",
          "UMLS:C3537389",
          "UniProtKB:Q59FH2",
          "UniProtKB:Q5SVJ7",
          "ENSEMBL:ENSP00000361520",
          "UniProtKB:S4R453",
          "ENSEMBL:ENSP00000475086"
        ],
        "dbIDs": {
          "NCBIGene": ["3778"],
          "ENSEMBL": [
            "ENSG00000156113",
            "ENSP00000482747",
            "ENSP00000491418",
            "ENSP00000491673",
            "ENSP00000492005",
            "ENSP00000491920",
            "ENSP00000492492",
            "ENSP00000492075",
            "ENSP00000492414",
            "ENSP00000492806",
            "ENSP00000491732",
            "ENSP00000491555",
            "ENSP00000361520",
            "ENSP00000475086"
          ],
          "HGNC": ["6284"],
          "OMIM": ["600150"],
          "UMLS": ["C1416602", "C3537389"],
          "UniProtKB": [
            "A0A087WZL8",
            "A0A1W2PP94",
            "A0A1W2PPY5",
            "A0A1W2PQK5",
            "A0A1W2PQU4",
            "A0A1W2PR56",
            "A0A1W2PR62",
            "A0A1W2PRN5",
            "A0A1W2PSD3",
            "B7ZMF5",
            "D5MRH1",
            "Q12791",
            "Q59FH2",
            "Q5SVJ7",
            "S4R453"
          ],
          "PR": ["Q12791"],
          "name": [
            "KCNMA1",
            "KCNMA1 gene",
            "A0A087WZL8_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)",
            "A0A1W2PP94_HUMAN BK channel (trembl)",
            "A0A1W2PPY5_HUMAN BK channel (trembl)",
            "A0A1W2PQK5_HUMAN BK channel (trembl)",
            "A0A1W2PQU4_HUMAN BK channel (trembl)",
            "A0A1W2PR56_HUMAN BK channel (trembl)",
            "A0A1W2PR62_HUMAN BK channel (trembl)",
            "A0A1W2PRN5_HUMAN BK channel (trembl)",
            "A0A1W2PSD3_HUMAN BK channel (trembl)",
            "B7ZMF5_HUMAN BK channel (trembl)",
            "D5MRH1_HUMAN BK channel (trembl)",
            "KCMA1_HUMAN Calcium-activated potassium channel subunit alpha-1 (sprot)",
            "calcium-activated potassium channel subunit alpha-1 (human)",
            "Calcium-Activated Potassium Channel Subunit Alpha-1",
            "Q59FH2_HUMAN BK channel (Fragment) (trembl)",
            "Q5SVJ7_HUMAN BK channel (trembl)",
            "S4R453_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)"
          ]
        },
        "_dbIDs": {
          "NCBIGene": ["3778"],
          "ENSEMBL": [
            "ENSG00000156113",
            "ENSP00000482747",
            "ENSP00000491418",
            "ENSP00000491673",
            "ENSP00000492005",
            "ENSP00000491920",
            "ENSP00000492492",
            "ENSP00000492075",
            "ENSP00000492414",
            "ENSP00000492806",
            "ENSP00000491732",
            "ENSP00000491555",
            "ENSP00000361520",
            "ENSP00000475086"
          ],
          "HGNC": ["6284"],
          "OMIM": ["600150"],
          "UMLS": ["C1416602", "C3537389"],
          "UniProtKB": [
            "A0A087WZL8",
            "A0A1W2PP94",
            "A0A1W2PPY5",
            "A0A1W2PQK5",
            "A0A1W2PQU4",
            "A0A1W2PR56",
            "A0A1W2PR62",
            "A0A1W2PRN5",
            "A0A1W2PSD3",
            "B7ZMF5",
            "D5MRH1",
            "Q12791",
            "Q59FH2",
            "Q5SVJ7",
            "S4R453"
          ],
          "PR": ["Q12791"],
          "name": [
            "KCNMA1",
            "KCNMA1 gene",
            "A0A087WZL8_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)",
            "A0A1W2PP94_HUMAN BK channel (trembl)",
            "A0A1W2PPY5_HUMAN BK channel (trembl)",
            "A0A1W2PQK5_HUMAN BK channel (trembl)",
            "A0A1W2PQU4_HUMAN BK channel (trembl)",
            "A0A1W2PR56_HUMAN BK channel (trembl)",
            "A0A1W2PR62_HUMAN BK channel (trembl)",
            "A0A1W2PRN5_HUMAN BK channel (trembl)",
            "A0A1W2PSD3_HUMAN BK channel (trembl)",
            "B7ZMF5_HUMAN BK channel (trembl)",
            "D5MRH1_HUMAN BK channel (trembl)",
            "KCMA1_HUMAN Calcium-activated potassium channel subunit alpha-1 (sprot)",
            "calcium-activated potassium channel subunit alpha-1 (human)",
            "Calcium-Activated Potassium Channel Subunit Alpha-1",
            "Q59FH2_HUMAN BK channel (Fragment) (trembl)",
            "Q5SVJ7_HUMAN BK channel (trembl)",
            "S4R453_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)"
          ]
        }
      }
    ],
    "qNodeID": "n0",
    "isSet": false,
    "curie": "NCBIGene:3778",
    "UMLS": ["C1416602", "C3537389"],
    "semanticType": "Gene",
    "label": "KCNMA1",
    "equivalentCuries": [
      "NCBIGene:3778",
      "ENSEMBL:ENSG00000156113",
      "HGNC:6284",
      "OMIM:600150",
      "UMLS:C1416602",
      "UniProtKB:A0A087WZL8",
      "ENSEMBL:ENSP00000482747",
      "UniProtKB:A0A1W2PP94",
      "ENSEMBL:ENSP00000491418",
      "UniProtKB:A0A1W2PPY5",
      "ENSEMBL:ENSP00000491673",
      "UniProtKB:A0A1W2PQK5",
      "ENSEMBL:ENSP00000492005",
      "UniProtKB:A0A1W2PQU4",
      "ENSEMBL:ENSP00000491920",
      "UniProtKB:A0A1W2PR56",
      "ENSEMBL:ENSP00000492492",
      "UniProtKB:A0A1W2PR62",
      "ENSEMBL:ENSP00000492075",
      "UniProtKB:A0A1W2PRN5",
      "ENSEMBL:ENSP00000492414",
      "UniProtKB:A0A1W2PSD3",
      "ENSEMBL:ENSP00000492806",
      "UniProtKB:B7ZMF5",
      "ENSEMBL:ENSP00000491732",
      "UniProtKB:D5MRH1",
      "ENSEMBL:ENSP00000491555",
      "UniProtKB:Q12791",
      "PR:Q12791",
      "UMLS:C3537389",
      "UniProtKB:Q59FH2",
      "UniProtKB:Q5SVJ7",
      "ENSEMBL:ENSP00000361520",
      "UniProtKB:S4R453",
      "ENSEMBL:ENSP00000475086"
    ],
    "names": [
      "KCNMA1",
      "KCNMA1 gene",
      "A0A087WZL8_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)",
      "A0A1W2PP94_HUMAN BK channel (trembl)",
      "A0A1W2PPY5_HUMAN BK channel (trembl)",
      "A0A1W2PQK5_HUMAN BK channel (trembl)",
      "A0A1W2PQU4_HUMAN BK channel (trembl)",
      "A0A1W2PR56_HUMAN BK channel (trembl)",
      "A0A1W2PR62_HUMAN BK channel (trembl)",
      "A0A1W2PRN5_HUMAN BK channel (trembl)",
      "A0A1W2PSD3_HUMAN BK channel (trembl)",
      "B7ZMF5_HUMAN BK channel (trembl)",
      "D5MRH1_HUMAN BK channel (trembl)",
      "KCMA1_HUMAN Calcium-activated potassium channel subunit alpha-1 (sprot)",
      "calcium-activated potassium channel subunit alpha-1 (human)",
      "Calcium-Activated Potassium Channel Subunit Alpha-1",
      "Q59FH2_HUMAN BK channel (Fragment) (trembl)",
      "Q5SVJ7_HUMAN BK channel (trembl)",
      "S4R453_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)"
    ],
    "attributes": {}
  },
  "object": {
    "original": "NCBIGene:3778",
    "normalizedInfo": [
      {
        "id": { "identifier": "NCBIGene:3778", "label": "KCNMA1" },
        "equivalent_identifiers": [
          { "identifier": "NCBIGene:3778", "label": "KCNMA1" },
          { "identifier": "ENSEMBL:ENSG00000156113" },
          { "identifier": "HGNC:6284", "label": "KCNMA1" },
          { "identifier": "OMIM:600150" },
          { "identifier": "UMLS:C1416602", "label": "KCNMA1 gene" },
          {
            "identifier": "UniProtKB:A0A087WZL8",
            "label": "A0A087WZL8_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000482747" },
          {
            "identifier": "UniProtKB:A0A1W2PP94",
            "label": "A0A1W2PP94_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000491418" },
          {
            "identifier": "UniProtKB:A0A1W2PPY5",
            "label": "A0A1W2PPY5_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000491673" },
          {
            "identifier": "UniProtKB:A0A1W2PQK5",
            "label": "A0A1W2PQK5_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000492005" },
          {
            "identifier": "UniProtKB:A0A1W2PQU4",
            "label": "A0A1W2PQU4_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000491920" },
          {
            "identifier": "UniProtKB:A0A1W2PR56",
            "label": "A0A1W2PR56_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000492492" },
          {
            "identifier": "UniProtKB:A0A1W2PR62",
            "label": "A0A1W2PR62_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000492075" },
          {
            "identifier": "UniProtKB:A0A1W2PRN5",
            "label": "A0A1W2PRN5_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000492414" },
          {
            "identifier": "UniProtKB:A0A1W2PSD3",
            "label": "A0A1W2PSD3_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000492806" },
          {
            "identifier": "UniProtKB:B7ZMF5",
            "label": "B7ZMF5_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000491732" },
          {
            "identifier": "UniProtKB:D5MRH1",
            "label": "D5MRH1_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000491555" },
          {
            "identifier": "UniProtKB:Q12791",
            "label": "KCMA1_HUMAN Calcium-activated potassium channel subunit alpha-1 (sprot)"
          },
          {
            "identifier": "PR:Q12791",
            "label": "calcium-activated potassium channel subunit alpha-1 (human)"
          },
          {
            "identifier": "UMLS:C3537389",
            "label": "Calcium-Activated Potassium Channel Subunit Alpha-1"
          },
          {
            "identifier": "UniProtKB:Q59FH2",
            "label": "Q59FH2_HUMAN BK channel (Fragment) (trembl)"
          },
          {
            "identifier": "UniProtKB:Q5SVJ7",
            "label": "Q5SVJ7_HUMAN BK channel (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000361520" },
          {
            "identifier": "UniProtKB:S4R453",
            "label": "S4R453_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)"
          },
          { "identifier": "ENSEMBL:ENSP00000475086" }
        ],
        "type": [
          "biolink:Gene",
          "biolink:BiologicalEntity",
          "biolink:NamedThing",
          "biolink:Entity",
          "biolink:GeneOrGeneProduct",
          "biolink:MacromolecularMachineMixin",
          "biolink:GenomicEntity",
          "biolink:ThingWithTaxon",
          "biolink:ChemicalEntityOrGeneOrGeneProduct",
          "biolink:PhysicalEssence",
          "biolink:PhysicalEssenceOrOccurrent",
          "biolink:OntologyClass",
          "biolink:Protein",
          "biolink:Polypeptide",
          "biolink:GeneProductMixin",
          "biolink:ChemicalEntityOrProteinOrPolypeptide"
        ],
        "information_content": 100,
        "primaryID": "NCBIGene:3778",
        "label": "KCNMA1",
        "attributes": {},
        "semanticType": "Gene",
        "_leafSemanticType": "Gene",
        "semanticTypes": [
          "biolink:Gene",
          "biolink:BiologicalEntity",
          "biolink:NamedThing",
          "biolink:Entity",
          "biolink:GeneOrGeneProduct",
          "biolink:MacromolecularMachineMixin",
          "biolink:GenomicEntity",
          "biolink:ThingWithTaxon",
          "biolink:ChemicalEntityOrGeneOrGeneProduct",
          "biolink:PhysicalEssence",
          "biolink:PhysicalEssenceOrOccurrent",
          "biolink:OntologyClass",
          "biolink:Protein",
          "biolink:Polypeptide",
          "biolink:GeneProductMixin",
          "biolink:ChemicalEntityOrProteinOrPolypeptide"
        ],
        "curies": [
          "NCBIGene:3778",
          "ENSEMBL:ENSG00000156113",
          "HGNC:6284",
          "OMIM:600150",
          "UMLS:C1416602",
          "UniProtKB:A0A087WZL8",
          "ENSEMBL:ENSP00000482747",
          "UniProtKB:A0A1W2PP94",
          "ENSEMBL:ENSP00000491418",
          "UniProtKB:A0A1W2PPY5",
          "ENSEMBL:ENSP00000491673",
          "UniProtKB:A0A1W2PQK5",
          "ENSEMBL:ENSP00000492005",
          "UniProtKB:A0A1W2PQU4",
          "ENSEMBL:ENSP00000491920",
          "UniProtKB:A0A1W2PR56",
          "ENSEMBL:ENSP00000492492",
          "UniProtKB:A0A1W2PR62",
          "ENSEMBL:ENSP00000492075",
          "UniProtKB:A0A1W2PRN5",
          "ENSEMBL:ENSP00000492414",
          "UniProtKB:A0A1W2PSD3",
          "ENSEMBL:ENSP00000492806",
          "UniProtKB:B7ZMF5",
          "ENSEMBL:ENSP00000491732",
          "UniProtKB:D5MRH1",
          "ENSEMBL:ENSP00000491555",
          "UniProtKB:Q12791",
          "PR:Q12791",
          "UMLS:C3537389",
          "UniProtKB:Q59FH2",
          "UniProtKB:Q5SVJ7",
          "ENSEMBL:ENSP00000361520",
          "UniProtKB:S4R453",
          "ENSEMBL:ENSP00000475086"
        ],
        "dbIDs": {
          "NCBIGene": ["3778"],
          "ENSEMBL": [
            "ENSG00000156113",
            "ENSP00000482747",
            "ENSP00000491418",
            "ENSP00000491673",
            "ENSP00000492005",
            "ENSP00000491920",
            "ENSP00000492492",
            "ENSP00000492075",
            "ENSP00000492414",
            "ENSP00000492806",
            "ENSP00000491732",
            "ENSP00000491555",
            "ENSP00000361520",
            "ENSP00000475086"
          ],
          "HGNC": ["6284"],
          "OMIM": ["600150"],
          "UMLS": ["C1416602", "C3537389"],
          "UniProtKB": [
            "A0A087WZL8",
            "A0A1W2PP94",
            "A0A1W2PPY5",
            "A0A1W2PQK5",
            "A0A1W2PQU4",
            "A0A1W2PR56",
            "A0A1W2PR62",
            "A0A1W2PRN5",
            "A0A1W2PSD3",
            "B7ZMF5",
            "D5MRH1",
            "Q12791",
            "Q59FH2",
            "Q5SVJ7",
            "S4R453"
          ],
          "PR": ["Q12791"],
          "name": [
            "KCNMA1",
            "KCNMA1 gene",
            "A0A087WZL8_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)",
            "A0A1W2PP94_HUMAN BK channel (trembl)",
            "A0A1W2PPY5_HUMAN BK channel (trembl)",
            "A0A1W2PQK5_HUMAN BK channel (trembl)",
            "A0A1W2PQU4_HUMAN BK channel (trembl)",
            "A0A1W2PR56_HUMAN BK channel (trembl)",
            "A0A1W2PR62_HUMAN BK channel (trembl)",
            "A0A1W2PRN5_HUMAN BK channel (trembl)",
            "A0A1W2PSD3_HUMAN BK channel (trembl)",
            "B7ZMF5_HUMAN BK channel (trembl)",
            "D5MRH1_HUMAN BK channel (trembl)",
            "KCMA1_HUMAN Calcium-activated potassium channel subunit alpha-1 (sprot)",
            "calcium-activated potassium channel subunit alpha-1 (human)",
            "Calcium-Activated Potassium Channel Subunit Alpha-1",
            "Q59FH2_HUMAN BK channel (Fragment) (trembl)",
            "Q5SVJ7_HUMAN BK channel (trembl)",
            "S4R453_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)"
          ]
        },
        "_dbIDs": {
          "NCBIGene": ["3778"],
          "ENSEMBL": [
            "ENSG00000156113",
            "ENSP00000482747",
            "ENSP00000491418",
            "ENSP00000491673",
            "ENSP00000492005",
            "ENSP00000491920",
            "ENSP00000492492",
            "ENSP00000492075",
            "ENSP00000492414",
            "ENSP00000492806",
            "ENSP00000491732",
            "ENSP00000491555",
            "ENSP00000361520",
            "ENSP00000475086"
          ],
          "HGNC": ["6284"],
          "OMIM": ["600150"],
          "UMLS": ["C1416602", "C3537389"],
          "UniProtKB": [
            "A0A087WZL8",
            "A0A1W2PP94",
            "A0A1W2PPY5",
            "A0A1W2PQK5",
            "A0A1W2PQU4",
            "A0A1W2PR56",
            "A0A1W2PR62",
            "A0A1W2PRN5",
            "A0A1W2PSD3",
            "B7ZMF5",
            "D5MRH1",
            "Q12791",
            "Q59FH2",
            "Q5SVJ7",
            "S4R453"
          ],
          "PR": ["Q12791"],
          "name": [
            "KCNMA1",
            "KCNMA1 gene",
            "A0A087WZL8_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)",
            "A0A1W2PP94_HUMAN BK channel (trembl)",
            "A0A1W2PPY5_HUMAN BK channel (trembl)",
            "A0A1W2PQK5_HUMAN BK channel (trembl)",
            "A0A1W2PQU4_HUMAN BK channel (trembl)",
            "A0A1W2PR56_HUMAN BK channel (trembl)",
            "A0A1W2PR62_HUMAN BK channel (trembl)",
            "A0A1W2PRN5_HUMAN BK channel (trembl)",
            "A0A1W2PSD3_HUMAN BK channel (trembl)",
            "B7ZMF5_HUMAN BK channel (trembl)",
            "D5MRH1_HUMAN BK channel (trembl)",
            "KCMA1_HUMAN Calcium-activated potassium channel subunit alpha-1 (sprot)",
            "calcium-activated potassium channel subunit alpha-1 (human)",
            "Calcium-Activated Potassium Channel Subunit Alpha-1",
            "Q59FH2_HUMAN BK channel (Fragment) (trembl)",
            "Q5SVJ7_HUMAN BK channel (trembl)",
            "S4R453_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)"
          ]
        }
      }
    ],
    "qNodeID": "n1",
    "isSet": false,
    "curie": "NCBIGene:3778",
    "UMLS": ["C1416602", "C3537389"],
    "semanticType": "Gene",
    "label": "KCNMA1",
    "equivalentCuries": [
      "NCBIGene:3778",
      "ENSEMBL:ENSG00000156113",
      "HGNC:6284",
      "OMIM:600150",
      "UMLS:C1416602",
      "UniProtKB:A0A087WZL8",
      "ENSEMBL:ENSP00000482747",
      "UniProtKB:A0A1W2PP94",
      "ENSEMBL:ENSP00000491418",
      "UniProtKB:A0A1W2PPY5",
      "ENSEMBL:ENSP00000491673",
      "UniProtKB:A0A1W2PQK5",
      "ENSEMBL:ENSP00000492005",
      "UniProtKB:A0A1W2PQU4",
      "ENSEMBL:ENSP00000491920",
      "UniProtKB:A0A1W2PR56",
      "ENSEMBL:ENSP00000492492",
      "UniProtKB:A0A1W2PR62",
      "ENSEMBL:ENSP00000492075",
      "UniProtKB:A0A1W2PRN5",
      "ENSEMBL:ENSP00000492414",
      "UniProtKB:A0A1W2PSD3",
      "ENSEMBL:ENSP00000492806",
      "UniProtKB:B7ZMF5",
      "ENSEMBL:ENSP00000491732",
      "UniProtKB:D5MRH1",
      "ENSEMBL:ENSP00000491555",
      "UniProtKB:Q12791",
      "PR:Q12791",
      "UMLS:C3537389",
      "UniProtKB:Q59FH2",
      "UniProtKB:Q5SVJ7",
      "ENSEMBL:ENSP00000361520",
      "UniProtKB:S4R453",
      "ENSEMBL:ENSP00000475086"
    ],
    "names": [
      "KCNMA1",
      "KCNMA1 gene",
      "A0A087WZL8_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)",
      "A0A1W2PP94_HUMAN BK channel (trembl)",
      "A0A1W2PPY5_HUMAN BK channel (trembl)",
      "A0A1W2PQK5_HUMAN BK channel (trembl)",
      "A0A1W2PQU4_HUMAN BK channel (trembl)",
      "A0A1W2PR56_HUMAN BK channel (trembl)",
      "A0A1W2PR62_HUMAN BK channel (trembl)",
      "A0A1W2PRN5_HUMAN BK channel (trembl)",
      "A0A1W2PSD3_HUMAN BK channel (trembl)",
      "B7ZMF5_HUMAN BK channel (trembl)",
      "D5MRH1_HUMAN BK channel (trembl)",
      "KCMA1_HUMAN Calcium-activated potassium channel subunit alpha-1 (sprot)",
      "calcium-activated potassium channel subunit alpha-1 (human)",
      "Calcium-Activated Potassium Channel Subunit Alpha-1",
      "Q59FH2_HUMAN BK channel (Fragment) (trembl)",
      "Q5SVJ7_HUMAN BK channel (trembl)",
      "S4R453_HUMAN Calcium-activated potassium channel subunit alpha-1 (trembl)"
    ],
    "attributes": {}
  },
  "predicate": "biolink:superclass_of",
  "recordHash": "0a5c9ec5054926e36681b144aa672501",
  "api": "Automat Pharos (trapi v-1.2.0)",
  "mappedResponse": {
    "edge-attributes": [
      {
        "attribute_type_id": "biolink:original_knowledge_source",
        "value": ["infores:ontological-hierarchy"],
        "value_type_id": "biolink:InformationResource",
        "original_attribute_name": "biolink:original_knowledge_source",
        "value_url": null,
        "attribute_source": "infores:automat-pharos",
        "description": null,
        "attributes": null
      },
      {
        "attribute_type_id": "biolink:relation",
        "value": "subClassOf",
        "value_type_id": "EDAM:data_0006",
        "original_attribute_name": "relation",
        "value_url": null,
        "attribute_source": null,
        "description": null,
        "attributes": null
      },
      {
        "attribute_type_id": "biolink:aggregator_knowledge_source",
        "value": ["infores:automat-pharos"],
        "value_type_id": "biolink:InformationResource",
        "original_attribute_name": "biolink:aggregator_knowledge_source",
        "value_url": null,
        "attribute_source": "infores:automat-pharos",
        "description": null,
        "attributes": null
      }
    ]
  }
}

A minimal FrozenRecord as part of a QueryResults graph structure test
{
  "subject": {
    "qNodeID": "n2",
  },
  "object": {
    "qNodeID": "n1"
  },
}

Additionally, some static functions are included:

freezeRecords and unfreezeRecords, to quickly serialize/unserialize an array of records.
packRecords and unpackRecords, to package an array of records into a much more minimal format, useful for caching space efficiency.

New Changes:

fixed directionality issues
call-apis now doesn't log sub-query configs, as this generally takes up a lot of space and isn't hugely useful for debugging
record.freeze() now returns a shorter, more readable record for creating test records, while record.freezeVerbose() freezes the record in its entirety, except for the qXedge.

I've also renamed apiEdge to association, as it's actually the association object from an actual apiEdge. Additionally, below I've added the updated interfaces for FrozenRecords. A Record instance, unfrozen, will still have the removed interfaces of subject|object.names and subject|object.equivalentCuries.
interface FrozenRecord {
  subject: FrozenNode;
  object: FrozenNode;
  predicate?: string;
  publications?: string[];
  recordHash?: string;
  api?: string;
  apiInforesCurie?: string;
  metaEdgeSource?: string;
  mappedResponse?: {
    'edge-attributes'?: EdgeAttribute[];
    [mappedItems: string]: any;
  }
}

interface FrozenNode {
  original: string;
  qNodeID: string;
  isSet: boolean;
  curie: string;
  UMLS: string;
  semanticType: string;
  label: string;
  attributes: any;
}

This leaves a frozen record looking like this
{
  "subject": {
    "original": "NCBIGene:3778",
    "qNodeID": "n0",
    "isSet": false,
    "curie": "NCBIGene:3778",
    "UMLS": ["C1416602", "C3537389"],
    "semanticType": "Gene",
    "label": "KCNMA1",
    "attributes": {}
  },
  "object": {
    "original": "UMLS:C3537389",
    "qNodeID": "n1",
    "isSet": false,
    "curie": "NCBIGene:3778",
    "UMLS": ["C1416602", "C3537389"],
    "semanticType": "Gene",
    "label": "KCNMA1",
    "attributes": {}
  },
  "predicate": "biolink:entity_positively_regulates_entity",
  "publications": ["PMID:32667185"],
  "recordHash": "a0de362e1c058cd2b09ee3bf2e1f685f",
  "api": "BioThings SEMMEDDB API",
  "apiInforesCurie": "infores:biothings-semmeddb",
  "metaEdgeSource": "infores:semmeddb",
  "mappedResponse": {
    "biolink:original_object": "C3537389",
    "biolink:original_predicate": "STIMULATES",
    "biolink:original_subject": "C1416602",
    "original_object_name": "Calcium-Activated Potassium Channel Subunit Alpha-1",
    "original_subject_name": "KCNMA1 gene"
  }
}

I'd like to check: is UMLS kept as a top-level property for FrozenNodes, because it is used for scoring? I'm linking the scoring PR here: https://github.com/biothings/bte_trapi_query_graph_handler/pull/98/files#diff-4c955410ddd1e2fd79ae07c90a75ecf59449c9696bcc7e64a567d7cb1e86bcb2

Yes, exactly. Actual UMLS information is stored in the NodeNormalizer results under a few complicated layers -- as UMLS is used for a specific purpose, the interface provides a straightforward access method via a getter (this also means it can be specified as such for test records rather than reproducing the structure of a NodeNormalizer result).


Check constraint as an expression instead of sql?

I have two columns StartDate EndDate  and I'd like to express the constraint with the expression:
HasCheckContaint(entity => entity.StartDate < entity.EndDate);

Sure, I can do this just with a sql string, but then I need to specify the exact column names properties are mapped to.

Duplicate of https://github.com/dotnet/efcore/issues/11001

Note that this plugin (EFCore.CheckConstraints) is about automatically creating check constraints for you; if you'd like to define your own check constraints (regardless of whether you do that via SQL or an expression), then you're using EF directly and not this plugin.


Extension install should not have a default selection prompt

Describe the bug
Command Name
az containerapp --help without containerapp extension installed.
Errors:
No errors.
To Reproduce:

Uninstall containerapp extension if you already have it installed
az containerapp --help
The UI prompt comes up for the installation suggestion. The prompt has a default choice selected. I accidentally pressed 'Enter' since it took 4 seconds for the installation suggestion to come up (was trying to type a second command). This ended up installing the wrong software.

Expected Behavior
An auto-suggested installation prompt should not provide a default choice selected.

Selecting the wrong selection ends up installing the wrong software
It is an auto-suggested prompt. High chances that it may not be right?

Did this reproduce consistently, but I expect az containerapp --help to be a direct match for containerapp and should always be recommended over other fuzzy matches.
Environment Summary
macOS-13.3.1-arm64-arm-64bit, Darwin 22.4.0
Python 3.10.11
Installer: HOMEBREW

azure-cli 2.47.0 *

Extensions:
serviceconnector-passwordless 0.3.1

Dependencies:
msal 1.20.0
azure-mgmt-resource 22.0.0

Additional Context

Thank you for opening this issue, we will look into it.


user not able to see the funds he has claimed

https://fuellabs.slack.com/archives/C0530NPJHEH/p1735140504881249

TLDR: He’s basically connected to an EVM account that has nothing to do with the predicate he claimed.


mesa 17.2.3

I just saw that the current version (17.1.6) fails to build from source in our docker container. Let's try to update to the latest version. I did not test this locally so I have no clue if this will build.

checking for wayland-scanner... yes
checking for x11-xcb xcb xcb-dri2 >= 1.8 xcb-xfixes... yes
checking for wayland-client >= 1.11 wayland-server >= 1.11... yes
configure: error: wayland-protocols >= 1.8 is needed to compile the wayland platform

==> Formula
Tap: linuxbrew/xorg

Woups forgot about this. Lets bump wayland to 1.14, and wayland protocols to 1.11

Will need #333 and #334 first

Travis: The job exceeded the maximum time limit for jobs, and has been terminated.

All green :)

why did you add depends_on "linuxbrew/xorg/wayland-protocols" => :recommended?

Because I got that error:

configure: error: wayland-protocols >= 1.8 is needed to compile the wayland platform

And wayland-protocols brings in wayland


governance: Add Microsoft TSC members

Add Vincent and Ananya to the list of members.

cc: @vbatts @angarg05

💪

@peterzcst @magowan @dcmiddle Are you guys ok with this PR?

Please rebase. I will wrangle the final SC approvals.

ping @surajssd please rebase

Done 😄

I think we have a corum?


cargo-all-features: 1.9.0 -> 1.10.0

Diff: https://diff.rs/cargo-all-features/1.9.0/1.10.0
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 246641 run on x86_64-linux 1

1 package built:

cargo-all-features


Error parsing template in form templatetag

It seems that if you try to change the default template of form templatetag (something like this):
{% form form=form template='material/form.html' %}{% endform %}
it throws you a TemplateDoesNotExist exception.
I noticed that it tries to render a template with a path like this .../material/templates/'material/form.html' and crashes when get_template is invoked in the render templatetag.

Confirmed, there is no context.resolve  call at https://github.com/viewflow/django-material/blob/master/material/templatetags/material_form.py#L90
this need to be fixed.
Currently, you can specify a template just without quotes.
{% form form=form template=material/form.html %}{% endform %}

Currently, you can specify a template just without quotes.

It doesn't works to me:
TemplateSyntaxError: Could not parse the remainder: '/form.html' from 'material/form.html'


Fix a potential overflow in FPS calculation

Master is crashing in debug mode when you look into black areas (nothing to draw) with:
thread 'main' panicked at 'attempt to multiply with overflow', sdl_viewer/src/lib.rs:224:23
This fixes this by hoisting an i32 into a floating point number earlier.

@wally-the-cartographer merge

Merge requested by authorized user feuerste. Merge queue now has a length of 1.

Error: PUT https://api.github.com/repos/googlecartographer/point_cloud_viewer/pulls/226/merge: 502 Server Error []
Log:
=> handle work item: PR 226 on googlecartographer/point_cloud_viewer.
 => Switching to branch master.
 $ git reset --hard HEAD [data/point_cloud_viewer]
HEAD is now at f2ed23c Initialize bbox with first element (#225)
 $ git clean -fd [data/point_cloud_viewer]
 $ git checkout master [data/point_cloud_viewer]
Already on 'master'
Your branch is up to date with 'origin/master'.
 $ git pull [data/point_cloud_viewer]
Already up to date.
 => Checking out SirVer/00_fix_overflow_on_frame_counter as local branch pr_226.
 $ git remote add SirVer git@github.com:SirVer/point_cloud_viewer.git [data/point_cloud_viewer]
fatal: remote SirVer already exists.
 $ git fetch SirVer [data/point_cloud_viewer]
 $ git branch --track pr_226 SirVer/00_fix_overflow_on_frame_counter [data/point_cloud_viewer]
Branch 'pr_226' set up to track remote branch '00_fix_overflow_on_frame_counter' from 'SirVer'.
 => Switching to branch pr_226.
 $ git reset --hard HEAD [data/point_cloud_viewer]
HEAD is now at f2ed23c Initialize bbox with first element (#225)
 $ git clean -fd [data/point_cloud_viewer]
 $ git checkout pr_226 [data/point_cloud_viewer]
Switched to branch 'pr_226'
Your branch is up to date with 'SirVer/00_fix_overflow_on_frame_counter'.
 $ git pull --force [data/point_cloud_viewer]
Already up to date.
 => merge master.
 $ git merge master [data/point_cloud_viewer]
Already up to date.
 => Running clang-format on all *.cc and *.h files
 $ git commit -am Ran clang-format. [data/point_cloud_viewer]
On branch pr_226
Your branch is up to date with 'SirVer/00_fix_overflow_on_frame_counter'.

nothing to commit, working tree clean
 $ git push --force SirVer HEAD:00_fix_overflow_on_frame_counter [data/point_cloud_viewer]
Everything up-to-date
 => Abandoning branch pr_226.
 => Switching to branch master.
 $ git reset --hard HEAD [data/point_cloud_viewer]
HEAD is now at 0ec7392 Merge branch 'master' into pr_226
 $ git clean -fd [data/point_cloud_viewer]
 $ git checkout master [data/point_cloud_viewer]
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
 $ git branch -D pr_226 [data/point_cloud_viewer]
Deleted branch pr_226 (was 0ec7392).

@wally-the-cartographer merge

Merge requested by authorized user SirVer. Merge queue now has a length of 1.


Fixed #28398 -- Add 'Did you mean' suggestions to manage.py

Ticket: https://code.djangoproject.com/ticket/28398
With this the output from manage.py rnserver would be:
Unknown command 'rnserver'. Did you mean runserver?
Type 'manage.py help' for usage.

Thanks for the review @carltongibson, do you think this needs a changelog entry added?

I had thought no. If you think it's worth mentioning then no harm I'd say 🙂

I'll leave it then 👍 thanks!


Upgrade all packages

This upgrades known dependencies to their latest versions, and makes a few small changes to the tsconfig and fetch_request files to upgrade the failing TypeScript build.

The tests are failing because intern comes pre-baked with its own copy of ChromeDriver, the ChromeDriver it uses only works with Chrome 99.
GitHub Actions runners use Chrome 98 right now (https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md#browsers-and-drivers). They also come with ChromeDriver which works with 98. It should be possible to set an environment flag to get intern to use the built in ChromeDriver... somehow :joy:

Could we lock intern to a version that has the prebaked 98 for now?


Things PTAN and the book can improve on.

I really like your book. The knowledge with implementation helps me understand many concepts faster. However, I cannot make progress from Chapter 09 since the introduction of PTAN. PTAN is a great library and I intended to apply it to my game environment (which is not openAI Gym). However, I had hard time doing that for the following reasons.
One problem is that you are trying to generalize the library to fit many agents and use-cases while targeting for only Open AI gym environment, which leads to un-reusability for mainstream development. I believe this hindered the popularity of this library also.
For example, the experience source implementation is overcomplicated with many options, many if else conditions and untidy __iter function. It greatly reduces the readability and readers of the book because as a reader, we need an easy to read and reuse code for other practical experiments, not a fully-packed library.
I know PTAN helps abstract repeated implementation. However, the abstraction here hurt the understanding of readers when you try to put much stuff inside the library.

Hi!
Yes, you're right. If you check the history of experience.py, you may notice that most of complications were introduced with vectorized envs (needed by Universe envs). Before that, it was way simpler and easier to understand (if you're curious, it was introduced here: https://github.com/Shmuma/ptan/commit/aaa563c61fbde3bd76bd8c7e390d07e963ff74dc#diff-c322277f55a770387f614aaad769104d). I still not sure that my implementation was the correct way of doing this, probably it could be better to implement it in a separate class.
In terms of supporting non-gym environments, that's an interesting idea. In my experience it was usually simpler to wrap some non-gym env into gym class or follow gym api from the beginning. From my perspective, gym api is simple but general enough to cover most of RL scenarios. But if you have examples of other use cases, which doesn't fit into gym Env api, we can think about generalisation, sure.
In fact, ptan is missing lots of things, like docs, examples (most of them are outdated) and could be improved in many other ways. I have plans to start dedicating more time to it, but can't say when it will happen :).

I agree with you. The code without vectorized is very clear and concise. I think separating the class will be better.
My current way is wrapping my environment to open AI gym too. I think OpenAI is standard, so sticking with it is ideal. Maybe, I felt it was too tightly coupled with openAI Gym because the library is modified to support "vectorized", which is not necessary generally.
Btw, thanks for the fast response and your support. I think with a little bit improvement, PTAN can help a lot more developers like me.

Using rllib would have worked too imo. It has very general approach to rl and can use pytorch or tf. (But I'm biased because I used it over baselines etc.)


implemented 1 Form.check successfully and 1 DropdownButton in progress

This contains the UI changes that we did as a group and individually.

Really spicy

@dasanchez981 @potnissa good job yalls


tour: goroutine possible typo

Context: https://tour.golang.org/concurrency/1
go f(x, y, z)
The evaluation of f, x, y, and z happens in the current goroutine and the execution of f happens in the new goroutine.
Is there a typo here? Should it be "The evaluation of x, y, and z happens in the current goroutine"? What does it mean the evaluation of f? The execution of f happens in the new goroutine, of course, as the sentence later says.

f may be an anonymous function

^this. The spec says

The function value and parameters are evaluated as usual in the calling goroutine

since f is a value as everything else, it may need to be evaluated. Closing here.


improve performance by doing a breath-first traversal in the chunk graph

What kind of change does this PR introduce?
refactor for performance

Did you add tests for your changes?
existing tests

If relevant, link to documentation update:
N/A

Summary
improve performance by doing a breath-first traversal in the chunk graph
This is faster because shorter paths usually have less modules available.
This allows to reach minimal modules faster

Does this PR introduce a breaking change?
no

Other information

Thanks for focusing on performance, @sokra!!!

@kenotron You should try this change. It should improve your performance as well. I thinking about using the same algorithm for the RemoveParentModulesPlugin...


"Object annotation" like Django

Problem

Howdy! There is no way to annotate custom data/aggregations to objects when querying them from the database. I'm coming from the Django framework that has a solid implementation of that and i really miss it. It would be a major improvement to this great framework.
For example, each product has one-to-many relation with reviews and by annotation you could append a custom field to each object when querying them. Simple example below:
model Product {
  id      Int     @id @default(autoincrement())
  name    String
  reviews Review[]
}

model Review {
  id         Int     @id @default(autoincrement())
  content    String
  rating     Int
  product    Product @relation(fields: [productId], references: [id])
  productId  Int
}

[
  {
    id: 1,
    name: someName,
    reviews: [...],
    aggregateRating: 3.9, // Annotated field
    reviewCount: 283 // Annotated field
  },
  {
    id: 2,
    name: otherName,
    reviews: [...],
    aggregateRating: 1.4, // Annotated field
    reviewCount: 93 // Annotated field
  }.
]

Suggested solution

Maybe something like chaining relations, but for annotation, so for example:
prisma.model
  .findMany() // Or findUnique() etc.
  .annotate({
    fieldName: { // Field that will be annotated to each object
      someAggregateFunction(...) // Value for this particular field as aggregation from relation etc.
    }
  })

// Or:

prisma.model
  .findMany({
    aggregate: {
      // ...some aggregate function...
    }
  })

Don't know if that would be feasible, but maybe the best way would be to put existing aggregation api inside each annotation field? With count() included.
Additional context

Here is a link to Django website and their implementation of this idea.
https://docs.djangoproject.com/en/3.1/ref/models/querysets/#annotate

Hey @Telluu, it has been quite some while - I apologize for that. Do I understand correctly that you basically want to have some clean models that represent the data in your database, but then define "annotations" in your code that add additional "computed fields" to the result, that are then part of the returned data?
If so, I think we actually built exactly what you are asking for, just slightly different: via Client Extensions, result component type to be exact: https://www.prisma.io/docs/concepts/components/prisma-client/client-extensions/result You can define the model you want to extend, which field name the data should have, and a function compute() that can do whatever you want based on the other data of the model.
(Also pinging the people that upvotes this issue: @olragon @marxlow @AbundantSalmon @AdemHodzic @joaoflaviosantosmoniari @cabjr @RodrigoJacznik)

Thanks for response @janpio.
That's a pretty nice solution, i tested it myself and it solves my problem. But... i was thinking about something more intuitive and easy to use.
I have to define an extended client instead of just doing that "annotation" at the same place and time when making a query. In my opinion that's a little bit weird and adds an unnecessary additional step. Maybe that's the best solution when you take into account the project code structure that I'm not familiar with, so i don't know.
Would it be feasible to modify the feature, so that its possible to do it at the same time when making a query?
Short example of what i mean (or something similar):
prisma.model
  .findMany()
  .annotate({ // Or .result()
    fieldName: compute(model) { ... } // Name a field & compute value at the same place
  })
// Dependencies (or needs) should be inferred automatically

On closer examination i realized that computed fields can only be based on scalar fields, and because of that, it doesn't solve the problem i described in the first post. But i see that there is an issue already that mentions this here #20091.

Long time Django developer here which is missing the same feature. Computed fields are nice, but since they are only calculated after the database is done with it can't be used for sorting or filtering. It would be nice if this functionality could be added to Prisma, though I fully understand this would be a place where type safety will become really difficult to enforce.
I did some more digging in the prisma issues and found https://github.com/prisma/prisma/issues/6336 where a workaround was described for virtual columns in mysql see also https://github.com/nikolasburk/generated-columns. I'd prefer to do it code wise not in mysql. Gives me a bit of old skool mysql views vibes. And (at least in mysql) virtual columns are limited to only the data of that table so it wouldn't work for relational data. Though i've seen Prisma has some basic support for that but not played around with it yet.

Hi there,
As part of our effort to clean up our GitHub repo, we’re closing this issue to help focus on features and improvements that align with our focus areas and those of our community.
If this is issue is still important to you, feel free to reopen the issue and get like-minded users to upvote as we will prioritize fixing issues based on community interest. If you do reopen the issue, please ensure that there’s a clear method for us to reproduce it.
For more insight into our priorities and how we’re thinking about the future of the Prisma ORM, please see our recent blog post: https://www.prisma.io/blog/prisma-orm-manifesto.
Thank you for your understanding and support!


[SPARK-33641][SQL][DOC][FOLLOW-UP] Add migration guide for CHAR VARCHAR types

What changes were proposed in this pull request?

Add migration guide for CHAR VARCHAR types
Why are the changes needed?

for migration
Does this PR introduce any user-facing change?

doc change
How was this patch tested?

passing ci

Test build #132386 has started for PR 30654 at commit 3cb8724.

Test build #132386 has finished for PR 30654 at commit 3cb8724.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/132386/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36987/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36987/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36985/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36987/

Test build #132396 has started for PR 30654 at commit 80d4421.

Test build #132396 has finished for PR 30654 at commit 80d4421.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/132396/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36996/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36996/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36996/

Test build #132466 has started for PR 30654 at commit dc88a0b.

thanks, merging to master/3.1! (doc only change, no need to wait for jenkins)

Test build #132466 has finished for PR 30654 at commit dc88a0b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/132466/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/37068/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/37068/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/37068/


404 is displayed instead of Hellow world

Hi
I deployed a static website following the steps as outlined in the article. I had to deploy by selecting the storage subscription unlike given in the documentation.
At the end of it my static website displays 404 instead of Hello world. I tried 2 times with same result. I am not sure what is going on.
Thank you.
Biju Joseph

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: badc419b-60d5-ba2c-0830-8d573db10dbe
Version Independent ID: efad89d0-d0da-895f-984d-046d67797ab4
Content: Tutorial: Host a static website on Blob storage - Azure Storage
Content Source: articles/storage/blobs/storage-blob-static-website-host.md
Service: storage
Sub-service: blobs
GitHub Login: @normesta
Microsoft Alias: normesta

@Biju-Joseph Thank you for your query, we will further look into it and get back to you at the earliest.

@Biju-Joseph Apologies for the delayed response on this, can you please confirm if you are still seeing the same issue ?

@Biju-Joseph Hope the documentation  has been helpful, apologies for the delayed response on this thread.
We will go ahead and close this issue for now, however if you are still experencing the issue of 404 listed earlier please tag us in your reply and will be more than happy to reopen the thread and continue the conversation. Thank you


Having major issues with this software…with Buster

Hi all,
I first installed the latest bulls eye, and would not work at all, so went back to buster a week ago, installed it all along with GUI, and all went fine, but it just now pleases itself if it starts up or not, or very often I get the error in red letters on the screen, I reckon it works about 3 times out of ten, the rest of the time it just says on the screen “all sky software starting up” but never does, no images recorded nothing…even when it does work and I have to change a setting it then never restarts….very disappointing
link to log files, it’s long but three are some errors in there so may help
https://www.dropbox.com/s/y0hcq8ir0xqwier/allsky.log?dl=0

The latest version….

I have the log, and there is nothing on the wiki page about uploading  them, so have no idea why you mean….🤔🤔

This shows the errors I am getting all the time…
an 11 14:10:14 allsky allsky.sh[613]: XXXXXX == in IntHandle(), got signal 15
Jan 11 14:10:14 allsky allsky.sh[613]: XXXXXX == in IntHandle(), got signal 15
Jan 11 14:10:17 allsky allsky.sh[613]:      ***** Stopping AllSky *****
Jan 11 14:10:18 allsky allsky.sh[1488]:      ***** Starting AllSky *****
Jan 11 14:10:18 allsky allsky.sh[1488]: CAMERA: RPiHQ
Jan 11 14:10:24 allsky allsky.sh[1488]:  ********************************************
Jan 11 14:10:24 allsky allsky.sh[1488]:  *** Allsky Camera Software v0.8.3 | 2021 ***
Jan 11 14:10:24 allsky allsky.sh[1488]:  ********************************************
Jan 11 14:10:24 allsky allsky.sh[1488]: Capture images of the sky with a Raspberry Pi and a RPi HQ camera
Jan 11 14:10:24 allsky allsky.sh[1488]: Add -h or --help for available options
Jan 11 14:10:24 allsky allsky.sh[1488]: Author: Thomas Jacquin -<EMAIL_ADDRESS>Jan 11 14:10:24 allsky allsky.sh[1488]: Contributors:
Jan 11 14:10:24 allsky allsky.sh[1488]: -Knut Olav Klo
Jan 11 14:10:24 allsky allsky.sh[1488]: -Daniel Johnsen
Jan 11 14:10:24 allsky allsky.sh[1488]: -Robert Wagner
Jan 11 14:10:24 allsky allsky.sh[1488]: -Michael J. Kidd -<EMAIL_ADDRESS>Jan 11 14:10:24 allsky allsky.sh[1488]: -Rob Musquetier
Jan 11 14:10:24 allsky allsky.sh[1488]: -Eric Claeys
Jan 11 14:10:24 allsky allsky.sh[1488]: -Andreas Lindinger
Jan 11 14:10:24 allsky allsky.sh[1488]:  Camera: Raspberry Pi HQ camera
Jan 11 14:10:24 allsky allsky.sh[1488]:   - Resolution: 4096x3040
Jan 11 14:10:24 allsky allsky.sh[1488]:   - Pixel Size: 1.55microns
Jan 11 14:10:24 allsky allsky.sh[1488]:   - Supported Bins: 1x, 2x and 3x
Jan 11 14:10:24 allsky allsky.sh[1488]: Capture Settings:
Jan 11 14:10:24 allsky allsky.sh[1488]:  Command: raspistill
Jan 11 14:10:24 allsky allsky.sh[1488]:  Image Type: RGB24
Jan 11 14:10:24 allsky allsky.sh[1488]:  Resolution (before any binning): 4096x3040
Jan 11 14:10:24 allsky allsky.sh[1488]:  Quality: 95
Jan 11 14:10:24 allsky allsky.sh[1488]:  Daytime capture: 1 (yes)
Jan 11 14:10:24 allsky allsky.sh[1488]:  Exposure (night): 20000ms
Jan 11 14:10:24 allsky allsky.sh[1488]:  Auto Exposure (night): 0 (no)
Jan 11 14:10:24 allsky allsky.sh[1488]:  Gain (night): 1.00
Jan 11 14:10:24 allsky allsky.sh[1488]:  Auto Gain (night): 0 (no)
Jan 11 14:10:24 allsky allsky.sh[1488]:  Brightness (day): 50
Jan 11 14:10:24 allsky allsky.sh[1488]:  Brightness (night): 50
Jan 11 14:10:24 allsky allsky.sh[1488]:  Saturation: 50.0
Jan 11 14:10:24 allsky allsky.sh[1488]:  Auto White Balance: 1 (yes)
Jan 11 14:10:24 allsky allsky.sh[1488]:  WB Red: 2.50
Jan 11 14:10:24 allsky allsky.sh[1488]:  WB Blue: 2.00
Jan 11 14:10:24 allsky allsky.sh[1488]:  Binning (day): 2
Jan 11 14:10:24 allsky allsky.sh[1488]:  Binning (night): 2
Jan 11 14:10:24 allsky allsky.sh[1488]:  Delay (day): 15000ms
Jan 11 14:10:24 allsky allsky.sh[1488]:  Delay (night): 10ms
Jan 11 14:10:24 allsky allsky.sh[1488]:  Text Overlay: Backyard Allsky  52.61N - 1.51W
Jan 11 14:10:24 allsky allsky.sh[1488]:  Text Position: 15px left, 75px top
Jan 11 14:10:24 allsky allsky.sh[1488]:  Font Name:  0
Jan 11 14:10:24 allsky allsky.sh[1488]:  Font Color: 255, 255, 255
Jan 11 14:10:24 allsky allsky.sh[1488]:  Font Background Color: 0
Jan 11 14:10:24 allsky allsky.sh[1488]:  Small Font Color: 0, 0, 255
Jan 11 14:10:24 allsky allsky.sh[1488]:  Font Line Type: 16
Jan 11 14:10:24 allsky allsky.sh[1488]:  Font Size: 7.0
Jan 11 14:10:24 allsky allsky.sh[1488]:  Font Line: 1
Jan 11 14:10:24 allsky allsky.sh[1488]:  Outline Font : 0 (no)
Jan 11 14:10:24 allsky allsky.sh[1488]:  Rotation: 0
Jan 11 14:10:24 allsky allsky.sh[1488]:  Flip Image: 0
Jan 11 14:10:24 allsky allsky.sh[1488]:  Filename: image.jpg
Jan 11 14:10:24 allsky allsky.sh[1488]:  Filename Save Directory: /home/pi/allsky/tmp
Jan 11 14:10:24 allsky allsky.sh[1488]:  Latitude: 60.7N
Jan 11 14:10:24 allsky allsky.sh[1488]:  Longitude: 135.05W
Jan 11 14:10:24 allsky allsky.sh[1488]:  Sun Elevation: -6
Jan 11 14:10:24 allsky allsky.sh[1488]:  Locale: en_US.UTF-8
Jan 11 14:10:24 allsky allsky.sh[1488]:  Notification Images: 1 (yes)
Jan 11 14:10:24 allsky allsky.sh[1488]:  Show Time: 1 (yes) (format: %d/%m/%Y %H:%M:%S)
Jan 11 14:10:24 allsky allsky.sh[1488]:  Show Exposure: 0 (no)
Jan 11 14:10:24 allsky allsky.sh[1488]:  Show Gain: 0 (no)
Jan 11 14:10:24 allsky allsky.sh[1488]:  Show Brightness: 0 (no)
Jan 11 14:10:24 allsky allsky.sh[1488]:  Show Focus Metric: 0 (no)
Jan 11 14:10:24 allsky allsky.sh[1488]:  Preview: 0 (no)
Jan 11 14:10:24 allsky allsky.sh[1488]:  Taking Dark Frames: 0 (no)
Jan 11 14:10:24 allsky allsky.sh[1488]:  Debug Level: 0
Jan 11 14:10:24 allsky allsky.sh[1488]:  On TTY: No
Jan 11 14:10:24 allsky allsky.sh[1488]:  Mode Mean: 0 (no)
Jan 11 14:10:24 allsky allsky.sh[1488]: ==========
Jan 11 14:10:24 allsky allsky.sh[1488]: === Starting nighttime capture ===
Jan 11 14:10:24 allsky allsky.sh[1488]: ==========
Jan 11 14:10:24 allsky allsky.sh[1488]: Stop the allsky service to end this process.
Jan 11 14:10:24 allsky allsky.sh[1488]: STARTING EXPOSURE at: 2022-01-11 14:10:24   @ 20.0 sec
Jan 11 14:10:46 allsky allsky.sh[1488]: Sleeping 0.0 seconds...
Jan 11 14:10:46 allsky allsky.sh[1488]: STARTING EXPOSURE at: 2022-01-11 14:10:46   @ 20.0 sec
Jan 11 14:10:47 allsky allsky.sh[1488]: removeBadImages.sh: File is bad: removed 'image-20220111141024.jpg' (above threshold: MEAN=99.901500, threshold = 90)
Jan 11 14:11:08 allsky allsky.sh[1488]: Sleeping 0.0 seconds...
Jan 11 14:11:08 allsky allsky.sh[1488]: STARTING EXPOSURE at: 2022-01-11 14:11:08   @ 20.0 sec
Jan 11 14:11:09 allsky allsky.sh[1488]: removeBadImages.sh: File is bad: removed 'image-20220111141046.jpg' (above threshold: MEAN=99.901500, threshold = 90)
Jan 11 14:11:30 allsky allsky.sh[1488]: Sleeping 0.0 seconds...
Jan 11 14:11:30 allsky allsky.sh[1488]: STARTING EXPOSURE at: 2022-01-11 14:11:30   @ 20.0 sec
Jan 11 14:11:31 allsky allsky.sh[1488]: removeBadImages.sh: File is bad: removed 'image-20220111141108.jpg' (above threshold: MEAN=99.901500, threshold = 90)
Jan 11 14:11:52 allsky allsky.sh[1488]: Sleeping 0.0 seconds...
Jan 11 14:11:52 allsky allsky.sh[1488]: STARTING EXPOSURE at: 2022-01-11 14:11:52   @ 20.0 sec
Jan 11 14:11:53 allsky allsky.sh[1488]: removeBadImages.sh: File is bad: removed 'image-20220111141130.jpg' (above threshold: MEAN=99.901500, threshold = 90)
Jan 11 14:12:14 allsky allsky.sh[1488]: Sleeping 0.0 seconds...
Jan 11 14:12:14 allsky allsky.sh[1488]: STARTING EXPOSURE at: 2022-01-11 14:12:14   @ 20.0 sec
Jan 11 14:12:15 allsky allsky.sh[1488]: removeBadImages.sh: File is bad: removed 'image-20220111141152.jpg' (above threshold: MEAN=99.901500, threshold = 90)
Jan 11 14:12:22 allsky allsky.sh[1488]: XXXXXX == in IntHandle(), got signal 15
Jan 11 14:12:22 allsky allsky.sh[1488]: XXXXXX == in IntHandle(), got signal 15
Jan 11 14:12:25 allsky allsky.sh[1488]:      ***** Stopping AllSky *****

This is another error
Jan 11 13:25:33 allsky allsky.sh[4929]: === Starting daytime capture ===
Jan 11 13:25:33 allsky allsky.sh[4929]: ==========
Jan 11 13:25:33 allsky allsky.sh[4929]: Stop the allsky service to end this process.
Jan 11 13:25:33 allsky allsky.sh[4929]: STARTING EXPOSURE at: 2022-01-11 13:25:33   @ 32.00 ms (0.03 sec)
Jan 11 13:25:44 allsky allsky.sh[4929]: /home/pi/allsky/allsky.sh: line 225:  5011 Killed                  "${ALLSKY_HOME}/${CAPTURE}" "${ARGUMENTS[@]}"
Jan 11 13:25:44 allsky allsky.sh[4929]: 'capture_RPiHQ' exited with RETCODE=137
Jan 11 13:25:44 allsky allsky.sh[4929]: ***
Jan 11 13:25:44 allsky allsky.sh[4929]: *** After fixing, restart the allsky service. ***
Jan 11 13:25:44 allsky allsky.sh[4929]: ***
Jan 11 13:26:16 allsky allsky.sh[5050]:      ***** Starting AllSky *****

@EricClaeys: mean calculation wrong ?
Jan 11 17:26:36 allsky allsky.sh[3333]: + MEAN=0.00217263
Jan 11 17:26:36 allsky allsky.sh[3333]: + egrep -q 'Huffman|Bogus|Corrupt|Invalid|Trunc|Missing|insufficient image data|no decode delegate|no images defined' /home/pi/allsky/tmp/badError.txt
Jan 11 17:26:36 allsky allsky.sh[3333]: ++ echo '0.00217263 * 100'
Jan 11 17:26:36 allsky allsky.sh[3333]: ++ bc
Jan 11 17:26:36 allsky allsky.sh[3333]: + MEAN=.21726300
Jan 11 17:26:36 allsky allsky.sh[3333]: + MSG=
Jan 11 17:26:36 allsky allsky.sh[3333]: + '[' 90 '!=' 0 ']'
Jan 11 17:26:36 allsky allsky.sh[3333]: ++ echo '.21726300 > 90'
Jan 11 17:26:36 allsky allsky.sh[3333]: ++ bc
Jan 11 17:26:36 allsky allsky.sh[3333]: + x=0
Jan 11 17:26:36 allsky allsky.sh[3333]: + '[' 0 -eq 1 ']'
Jan 11 17:26:36 allsky allsky.sh[3333]: + '[' false = true ']'
Jan 11 17:26:36 allsky allsky.sh[3333]: + '[' '' = '' -a 1 '!=' 0 ']'
Jan 11 17:26:36 allsky allsky.sh[3333]: ++ echo '.21726300 < 1'

Looks that way…if that is what you are asking…?

no the calculation is ok, but in my case the low value 1 is to high.
e.g. LOW=0.001 works fine
Jan 11 18:05:12 allsky allsky.sh[3333]: + MEAN=0.00779175
Jan 11 18:05:12 allsky allsky.sh[3333]: + egrep -q 'Huffman|Bogus|Corrupt|Invalid|Trunc|Missing|insufficient image data|no decode delegate|no images defined' /home/pi/allsky/tmp/badError.txt
Jan 11 18:05:12 allsky allsky.sh[3333]: ++ echo '0.00779175 * 100'
Jan 11 18:05:12 allsky allsky.sh[3333]: ++ bc
Jan 11 18:05:12 allsky allsky.sh[3333]: + MEAN=.77917500
Jan 11 18:05:12 allsky allsky.sh[3333]: + MSG=
Jan 11 18:05:12 allsky allsky.sh[3333]: + '[' 90 '!=' 0 ']'
Jan 11 18:05:12 allsky allsky.sh[3333]: ++ echo '.77917500 > 90'
Jan 11 18:05:12 allsky allsky.sh[3333]: ++ bc
Jan 11 18:05:12 allsky allsky.sh[3333]: + x=0
Jan 11 18:05:12 allsky allsky.sh[3333]: + '[' 0 -eq 1 ']'
Jan 11 18:05:12 allsky allsky.sh[3333]: + '[' false = true ']'
Jan 11 18:05:12 allsky allsky.sh[3333]: + LOW=0.001
Jan 11 18:05:12 allsky allsky.sh[3333]: + '[' '' = '' -a 0.001 '!=' 0 ']'
Jan 11 18:05:12 allsky allsky.sh[3333]: ++ echo '.77917500 < 0.001'
Jan 11 18:05:12 allsky allsky.sh[3333]: ++ bc
Jan 11 18:05:12 allsky allsky.sh[3333]: + x=0
Jan 11 18:05:12 allsky allsky.sh[3333]: + '[' 0 -eq 1 ']'
Jan 11 18:05:12 allsky allsky.sh[3333]: + '[' false = true -a '' = '' ']'
Jan 11 18:05:12 allsky allsky.sh[3333]: + '[' false = true -a '' = '' -a '' '!=' '' ']'
Jan 11 18:05:12 allsky allsky.sh[3333]: + '[' '' '!=' '' ']'
Jan 11 18:05:12 allsky allsky.sh[3333]: + '[' 0 -eq 0 ']'
Jan 11 18:05:12 allsky allsky.sh[3333]: + '[' image-20220111180505.jpg = '' ']'
Jan 11 18:05:12 allsky allsky.sh[3333]: + rm -f /home/pi/allsky/tmp/removeBadImages.log
Jan 11 18:05:12 allsky allsky.sh[3333]: + rm -f /home/pi/allsky/tmp/badError.txt
Jan 11 18:05:12 allsky allsky.sh[3333]: + '[' 0 -eq 0 ']'
Jan 11 18:05:12 allsky allsky.sh[3333]: + exit 0

the same, but with HIGH is in your case. the mean is to high
above threshold: MEAN=99.901500, threshold = 90
picture is very overexposed
my opinion, this is not a bug.

the same, but with HIGH is in your case. the mean is to high above threshold: MEAN=99.901500, threshold = 90
picture is very overexposed
my opinion, this is not a bug.

Makes no difference if I change it to 100 still the same, does not work, had it working for about 3 mins, then stopped again, with the same error, this is the version loaded yesterday so it’s very latest, very very buggy and intermittent…even re booting Rpi zero makes no difference…☹

let's make it step by step:

set the correct location (you ar using the default values)
Jan 11 14:10:24 allsky allsky.sh[1488]: Latitude: 60.7N
Jan 11 14:10:24 allsky allsky.sh[1488]: Longitude: 135.05W

raspi pi time is correct ?

after this send me the logging (start + 1 capture)

This is all I get on screen, but it never saves or shows any images and get the errors above in the log all the time, and this screen does not change

Makes no difference if I change it to 100 still the same, does not work, had it working for about 3 mins, then stopped again, with the same error, this is the version loaded yesterday so it’s very latest, very very buggy and intermittent…even re booting Rpi zero makes no difference…

we have not yet recognized any errors - except perhaps imprecise instructions or incomprehensible messages

Well very sorry for wasting your time, I am not a coder or that computer savvy, and sorry for that too that I don’t have the correct terminology…
I have got it to work but will only work when the rpiHQ camera is binned 2x2 anything else and it fails all the time….
Although you are probably mot interested….

@ShedAstro:
if I didn't care, I wouldn't have answered your questions.
And I almost started at level 0 a year ago. And that it doesn't work straight away is the intention with Raspberry Pi projects. It's supposed to be a learning computer.
So let's start from the begining:

Describe your system (Raspi, OS, Camera, ...)?
Is this a new installation or an update?
What exactly does not work?
The log file is usually very important for an error analysis (you can find it under /var/log/allsky.log)
Have you seen our wiki yet? (e.g.  https://github.com/thomasjacquin/allsky/wiki/Reporting-Issues)

I close this issue, and you make a new....

@ShedAstro
We're trying to help.  Please hang in their with us.  Let's look at things one at a time.
In your first log, it's taking nighttime pictures but it's only 2 pm, so a 20 second exposure is almost pure white, hence the "removeBadImages.sh: File is bad: ..." message - you have REMOVE_BAD_IMAGES="true" which is the recommendation.  You could set it to "false" but that doesn't fix the issue that your Pi considers 2 pm to be nighttime.
When Allsky starts it displays the "Allsky is starting up" message, and leaves it there until the first image appears.  If no image appears because they are being deleted for being too bright, that "Allsky is starting up" message will stay a long time - probable until 7 or 8 pm when a 20 second exposure gives a decent picture.
So, we need to determine why your Pi thinks nighttime is at 2 pm.
This Wiki page describes the "Angle" setting.
Please run this to determine when your Pi thinks daytime and nighttime are, based on your latitude, longitude, and Angle:
( cd ~/allsky; source config/config.sh; ./sunwait list angle $(jq -r ".angle,.latitude,.longitude" ${CAMERA_SETTINGS}) )
According to the log file you uploaded to Dropbox, your Angle is -9, latitude is 52.57N, and Longitude is 4.7E.  Are those correct?

@ShedAstro We're trying to help. Please hang in their with us. Let's look at things one at a time.
In your first log, it's taking nighttime pictures but it's only 2 pm, so a 20 second exposure is almost pure white, hence the "removeBadImages.sh: File is bad: ..." message - you have REMOVE_BAD_IMAGES="true" which is the recommendation. You could set it to "false" but that doesn't fix the issue that your Pi considers 2 pm to be nighttime.
When Allsky starts it displays the "Allsky is starting up" message, and leaves it there until the first image appears. If no image appears because they are being deleted for being too bright, that "Allsky is starting up" message will stay a long time - probable until 7 or 8 pm when a 20 second exposure gives a decent picture.
So, we need to determine why your Pi thinks nighttime is at 2 pm. This Wiki page describes the "Angle" setting. Please run this to determine when your Pi thinks daytime and nighttime are, based on your latitude, longitude, and Angle: ( cd ~/allsky; source config/config.sh; ./sunwait list angle $(jq -r ".angle,.latitude,.longitude" ${CAMERA_SETTINGS}) )
According to the log file you uploaded to Dropbox, your Angle is -9, latitude is 52.57N, and Longitude is 4.7E. Are those correct?

So where is the thread gone why closed….
I have now set the correct long and lat, and it seems to work, but it will only work with 2x2 bin set, if I use 1x1 then I get red error message on screen and asks to check the log…
Also what time is the camera supposed to start and stop taking images at night, and can it be set to just come on at night as I don’t want in the daytime…
Thanks

I close this issue, and you make a new....

What did you close and not give me time to get up in the morning and answer, you are not helpful at all, and have no patience whatsoever…

@ShedAstro: if I didn't care, I wouldn't have answered your questions. And I almost started at level 0 a year ago. And that it doesn't work straight away is the intention with Raspberry Pi projects. It's supposed to be a learning computer.
So let's start from the begining:

Describe your system (Raspi, OS, Camera, ...)?
Is this a new installation or an update?
What exactly does not work?
The log file is usually very important for an error analysis (you can find it under /var/log/allsky.log)
Have you seen our wiki yet? (e.g.  https://github.com/thomasjacquin/allsky/wiki/Reporting-Issues)

If you had actually read the posts I made all these questions are answered, so what not read them…..before making judgements you complete idiot…..😮😡

@ShedAstro: Sorry, I thought this issue is actually a discussion and not a bug.

NOTE @ShedAstro  -- let's please be respectful of each other.   We're all volunteers working on a project, and trying to help everyone with any issues that arise.  It's easy to make a mistake - we're all human, especially when switching context while working across different issues.


Invalid \escape

Things seem to work as expected in testing on this channel: https://www.youtube.com/@CodexCommunity/videos
But trying this channel results in an error: https://www.youtube.com/@PerfectGuyLife/videos
json.decoder.JSONDecodeError: Invalid \escape: line 1 column 212 (char 211)
My guess is that the 2nd channel uses emoji in some of their titles, like 🔴 Fishtank is LIVE 🐟 50% OFF Weekend
Any thoughts on this?

Problem on is on line 210 in the get_channel_name function.
script = soup.find('script', type='application/ld+json')
data = json.loads(script.string)

for some reason json.loads() is breaking when it tries to read the channel name from the string:
"name": "Sam \x26 Nick\x27s Perfect Clips"

Fixed with 29e0f11db0ea3b0b1c1e1c7e491d5faa38d2b602

@NotJoeMartinez Nice, thanks for the quick fix!


SyslogUdpHandler priority format bug?

    protected function makeCommonSyslogHeader($severity)
    {
        $priority = $severity + $this->facility;
        return "<$priority>1 ";
    }

Why there's a 1 after priority? RFC5424 defines:
HEADER          = PRI VERSION SP TIMESTAMP SP HOSTNAME
                        SP APP-NAME SP PROCID SP MSGID
PRI             = "<" PRIVAL ">"

It's the version I believe. As per https://tools.ietf.org/html/rfc5424#section-6.2.2 - and https://tools.ietf.org/html/rfc5424#section-6.5 also shows this <prio>1 scheme in examples, so it seems fine to me.


List 'No type coercion and "any" type' as a disadvantage

Isn't this an advantage?

It's dependent on the audience. It can be a disadvantage for the TypeScript and Flow.js users.
Thank you for your question ^_^


Download - AssertionErro

while trying to download this particular apk with package name com.spotify.s4a and version code 12470 i'm getting this as response
{"generatedMessage":false,"name":"AssertionError [ERR_ASSERTION]","code":"ERR_ASSERTION","actual":null,"expected":true,"operator":"=="}

i solved it by replacing all the === with == in api.js

now facing it again with linked in app


Allow initializing app manually with impersonated service account

Fix for https://github.com/firebase/firebase-admin-node/issues/2692

Thank you for the contribution! This should now be fixed in https://github.com/firebase/firebase-admin-node/pull/2466


apppend users interfaces

:+1:
can you add the update function to the documentation as well pls?

Okay , I will update README file later

Very cool! :+1:
Also with codacy in place! :smiley:

😄 Please check the code


[Feature Request] Opt-In to write Snapshots to other source roots

I am using selfie to perform snapshot testing in Spring integration tests for Thymeleaf templates. In order to cleanly organize my test code, I have a separate (src/integrationTest/kotlin) source set for my integration tests that start a Spring test app.
When adding this source set to the otherSourceRoots value in SelfieSettings, selfie works nicely. However, (as intended and documented) selfie does not write Snapshot files to that source set but rather to src/test/kotlin.
I would love to see an option that allows to opt-in to writing the snapshots to the source set that the test is located in, so that other developers can easily find snapshots that I store and don't have to look for them in src/test.

You can override this method (@Override File getRootFolder() in java-speak) and set the snapshot folder to be whatever you want.
https://github.com/diffplug/selfie/blob/a88b7a5535f33de6020d433772010ca43b78ace1/jvm/selfie-runner-junit5/src/main/kotlin/com/diffplug/selfie/junit5/SelfieSettingsAPI.kt#L65-L80
Is that enough control? Or do you want to snapshots to be in multiple different source roots?

That's enough for me, thank you for pointing me towards that approach!


fix fileComplete reference error in Loader.loadVideoTag

This PR is a bug fix (closes #742)
Please include a summary in Change Log: Unreleased and thank yourself.
Describe the changes below:
The game.load reference in the videoLoadEvent callback gets nulled when the game is destroyed. This uses the local reference for fileComplete instead.

Just checking if this the correct way to make a PR?
Also do I need to add to the CHANGELOG?
Thanks @samme  🙏

I can do the CHANGELOG.


refactor!: version gas scheduler variables

Overview

Fixes #3404
Fixes #3748
Fixes #3762

DefaultGasPerBlobByte is still accessible through appconsts.DefaultGasPerBlobByte so I don't think library consumers would need to change anything

DefaultGasPerBlobByte is still accessible through appconsts.DefaultGasPerBlobByte so I don't think library consumers would need to change anything

Oh good point, nvm disregard my comment about adding it to release notes. Does that mean the only breaking change in this PR is the removal of NetworkMinGasPrice? Should we add that to pending-release notes?

Since this PR is marked breaking, I think we should at the very least add notes to pending-release.md about what was API breaking.
If we wanted to go above and beyond, we could add a line describing what this refactor does to pending-release.md so that we can use it in the release notes.

I want to merge this but will do in a follow up


post: KF 1.5.1 release blog post

Making the PR for the KF 1.5.1 patch release from https://docs.google.com/document/d/1L9gaISYy73N84UKpkro1EQFvcB2LexoDIORIKZ2DQKE/edit
/cc @jbottum @annajung @surajkota @DomFleischmann @theadactyl @james-jwu @zijianjoy

@surajkota Hey Suraj - Could you pleases review this PR and provide your comments and lgtm ?

@annajung would you please review this PR ?

/approve

@kimwnasptd line 17 probably need a period at the end of the sentence (after "here").   With that change, I provide
/lgtm

/lgtm

I've added the proposed changes from the comments above. I believe it should be ready to merge.
cc @zijianjoy @jbottum

@kimwnasptd I believe we need a "," after Mercedes Benz clusters, which I believe is on line 13.   then its /lgtm

/lgtm
/approve
Thank you for composing the blog post!

/lgtm

/approve

@kimwnasptd can we please get this posted ?

@droctothorpe Would you like to sign the CLA to pass presubmit check?

Thanks, @zijianjoy. I've definitely signed the CLA. Investigating why it's not properly mapped to this commit now.

Signed a new CLA with my<EMAIL_ADDRESS>gmail account. Not sure why this commit was flagged while others passed this gate without issue. Screenshots for reference.
New CLA:

Previous CLA:

In theory, the CLA gate should pass now. Sorry to hold this merge up on something as silly as a missing comma! 🙃

CLA check confirmed passing now.

/lgtm
/approve


Temp nuget.config generated by DotNetCoreCLI@2 has bug

When the DotNetCoreCLI@2 task runs it generates a temporary nuget.config file. When it does this, it some scenarios, under the packageSources section, it will rename a source key from yourkeyname to feed-yourkeyname. This is fine, the only problem is, it's not mirroring that change in the packageSourceMapping section. Thus ultimately, during the restore, if you've got a packageSource with a key yourkeyname, it's unable to find it, because in the temporary NuGet file, it's been changed to feed-yourkeyname. As a workaround, I've changed our nuget.config to have the feed- prefix in the packageSourceMapping section, but the task should be fixed.
I found this issue when we upgraded our solution to use Central Package Management (which led me to upgrade our NuGet and dotnet core version.

Dug a bit deeper, and then found this in NuGetConfigHelper2.ts Looks like a workaround was put in for some ancient versions of nuget and dotnet. Don't know if those versions are even still supported or not, but hopefully the workaround can be removed.

Nope, not stale. So great that you can identify a problem, find the EXACT line of code causing it, create a PR, and then...
NOTHING.


Add dataset card when pushing to HF hub

This pull request implements automatic dataset card generation for the dataset repository on the Hugging Face Hub. This improvement simplifies the process of loading results for a particular model and task by specifying the split and the evaluation datetime, or simply latest:
from datasets import load_dataset

load_dataset(
"EleutherAI/lm-eval-results-private", "microsoft__phi-2__gsm8k", "latest")

@clefourrier @NathanHB @nthngshr

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: KonradSzafer:x: Nathan HabibNathan Habib seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@haileyschoelkopf I signed the CLA but it does not seem to actualize, do we need to relaunch the bot in that case ?

Ah, I see that it's erroring because it doesn't recognize "Nathan Habib" as you--that's not a problem! Thanks :)


Can we have Add and Edit functionality in single Page ?

Here Can you combine Add and Edit functionality in single page??

Hi,
What do you mean?
Did you want to see Add button on the edit page, so it will add a record with same data as an edited record?


Update build scripts, fix windows test issues

Update rakefile and workflows (from maargnton/go-testreport)
Upload coverage file on linux runner, latest go only
Fix build badge in README.md
Fix Ruby STDOUT buffering on windows
Disable -race option when running tests on windows
Use proper shell escaping.for git describe on windows
Remove extra leading space in git unshallow command

Released in v0.5.0


feat: add hideMinutes prop to TimeInput

The minutes picker isn't always needed so it would be nice to be able to hide it using just a single prop.

Great, thanks for contribution!
There is disableMinute option in mdehoog's project. I think it would be better to preserve that name.


Check App is running in Azure. Use ReportAs value.

If ReportAs value is set by the user, use it for the metrics aliases.
Check if the Web App is running in Azure before trying to register gauges.

please close corresponding issues #42 and #43

@SergeyKanzhelev I don't have enough permissions to close issues in the repo.


How to inherit 'defines' from other targets?

I'd like to do the following:
cc_library(
  name = "libA",
  srcs = ["libA.cc"],
  defines = ["MY_DEFINE"],
)

cc_binary(
  name = "binX",
  srcs = ["binX.cc"],
  deps = [":libA"],  # This will inherit libA's defines such that binX is compiled with -DMY_DEFINE
)

Is this possible?

I don't think it is possible but hanwen has more insight than me on the C++ rules

According to http://bazel.io/docs/build-encyclopedia.html#cc_library.defines , this is already the way it works. Please file a bug if it doesn't work as documented.


Textract.process not working...MacOS

I am having the following error:
Traceback (most recent call last):

  File "<ipython-input-25-c7a4aaeff23c>", line 104, in <module>
    org_text.append(textract.process(filepath[i], encoding='utf-8'))

  File "/anaconda3/lib/python3.6/site-packages/textract/parsers/__init__.py", line 77, in process
    return parser.process(filename, encoding, **kwargs)

  File "/anaconda3/lib/python3.6/site-packages/textract/parsers/utils.py", line 47, in process
    unicode_string = self.decode(byte_string)

  File "/anaconda3/lib/python3.6/site-packages/textract/parsers/utils.py", line 64, in decode
    result = chardet.detect(text)

  File "/anaconda3/lib/python3.6/site-packages/chardet/__init__.py", line 30, in detect
    u.feed(aBuf)

  File "/anaconda3/lib/python3.6/site-packages/chardet/universaldetector.py", line 125, in feed
    self._mCharSetProbers = [MBCSGroupProber(), SBCSGroupProber(),

  File "/anaconda3/lib/python3.6/site-packages/chardet/mbcsgroupprober.py", line 43, in __init__
    CharSetGroupProber.__init__(self)

TypeError: __init__() takes 1 positional argument but 2 were given

and sometimes the following:
super(type, obj): obj must be an instance or subtype of type
The package was working fine before but for some reason I got updated to python 3.7 after which I got back to python 3.6 but now the package is showing the above errors.
Sorry, I am new to python coding. So let me know if I havent given you the full info.
Thanks.

Could you provide a test file and the code you used to process this file with textract? If possible, try again using the latest version of textract.

I'm closing this issue due to inactivity. If you still encounter the issue with the latest version of textract, feel free to leave a comment with additional information and I'll reopen the issue.


[match] Endless loop of "Neither the MATCH_PASSWORD environment variable nor the local keychain contained a password."

fastlane match seems to land in an endless loop if run in an non-interactive environment and no password to decrypt the repository is found:
[22:47:54]: ------------------------------------------
[22:47:54]: --- Step: Switch to ios run_match lane ---
[22:47:54]: ------------------------------------------
[22:47:54]: Cruising over to lane 'ios run_match' 🚖
[22:47:54]: ----------------------------------------
[22:47:54]: --- Step: bundle exec fastlane match ---
[22:47:54]: ----------------------------------------
[22:47:54]: $ bundle exec fastlane match
[22:47:56]: ▸ [22:47:56]: Successfully loaded '/Users/sujan/Projects/Fastlane/fastlane-e2e-tests/ios/fastlane/Matchfile' 📄
[22:47:56]: ▸ +---------+--------------------------------------+
[22:47:56]: ▸ |  Detected Values from './fastlane/Matchfile'   |
[22:47:56]: ▸ +---------+--------------------------------------+
[22:47:56]: ▸ | git_url | https://janpio:...|
[22:47:56]: ▸ |         | @bitbucket.org/janpio/fa....g  |
[22:47:56]: ▸ |         | it                                   |
[22:47:56]: ▸ +---------+--------------------------------------+
[22:47:56]: ▸ +-----------------------+--------------------------------------+
[22:47:56]: ▸ |                  Summary for match 2.108.0                   |
[22:47:56]: ▸ +-----------------------+--------------------------------------+
[22:47:56]: ▸ | git_url               | https://janpio:...|
[22:47:56]: ▸ |                       | @bitbucket.org/janpio/fas....g  |
[22:47:56]: ▸ |                       | it                                   |
[22:47:56]: ▸ | git_branch            | master                               |
[22:47:56]: ▸ | type                  | development                          |
[22:47:56]: ▸ | storage_mode          | git                                  |
[22:47:56]: ▸ | app_identifier        | ["tools.fastlane.iosapp"]            |
[22:47:56]: ▸ | username              | piotro...ail.com                 |
[22:47:56]: ▸ | keychain_name         | login.keychain                       |
[22:47:56]: ▸ | readonly              | false                                |
[22:47:56]: ▸ | verbose               | false                                |
[22:47:56]: ▸ | force                 | false                                |
[22:47:56]: ▸ | skip_confirmation     | false                                |
[22:47:56]: ▸ | shallow_clone         | false                                |
[22:47:56]: ▸ | clone_branch_directly | false                                |
[22:47:56]: ▸ | force_for_new_devices | false                                |
[22:47:56]: ▸ | skip_docs             | false                                |
[22:47:56]: ▸ | platform              | ios                                  |
[22:47:56]: ▸ +-----------------------+--------------------------------------+
[22:47:56]: ▸ [22:47:56]: Cloning remote git repo...
[22:47:56]: ▸ [22:47:56]: If cloning the repo takes too long, you can use the `clone_branch_directly` option in match.
[22:48:03]: ▸ [22:48:03]: Neither the MATCH_PASSWORD environment variable nor the local keychain contained a password.
[22:48:03]: ▸ [22:48:03]: Bailing out instead of asking for a password, since this is non-interactive mode.
[22:48:03]: ▸ [22:48:03]: Couldn't decrypt the repo, please make sure you enter the right password!
[22:48:03]: ▸ security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
[22:48:03]: ▸ [22:48:03]: Neither the MATCH_PASSWORD environment variable nor the local keychain contained a password.
[22:48:03]: ▸ [22:48:03]: Bailing out instead of asking for a password, since this is non-interactive mode.
[22:48:03]: ▸ [22:48:03]: Couldn't decrypt the repo, please make sure you enter the right password!
[22:48:04]: ▸ security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
[22:48:04]: ▸ [22:48:04]: Neither the MATCH_PASSWORD environment variable nor the local keychain contained a password.
[22:48:04]: ▸ [22:48:04]: Bailing out instead of asking for a password, since this is non-interactive mode.
[22:48:04]: ▸ [22:48:04]: Couldn't decrypt the repo, please make sure you enter the right password!
[22:48:04]: ▸ security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
[22:48:04]: ▸ [22:48:04]: Neither the MATCH_PASSWORD environment variable nor the local keychain contained a password.
[22:48:04]: ▸ [22:48:04]: Bailing out instead of asking for a password, since this is non-interactive mode.
[22:48:04]: ▸ [22:48:04]: Couldn't decrypt the repo, please make sure you enter the right password!
[22:48:04]: ▸ security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
[22:48:04]: ▸ [22:48:04]: Neither the MATCH_PASSWORD environment variable nor the local keychain contained a password.
[22:48:04]: ▸ [22:48:04]: Bailing out instead of asking for a password, since this is non-interactive mode.
[22:48:04]: ▸ [22:48:04]: Couldn't decrypt the repo, please make sure you enter the right password!
[22:48:04]: ▸ security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
[22:48:05]: ▸ [22:48:05]: Neither the MATCH_PASSWORD environment variable nor the local keychain contained a password.
[22:48:05]: ▸ [22:48:05]: Bailing out instead of asking for a password, since this is non-interactive mode.
[22:48:05]: ▸ [22:48:05]: Couldn't decrypt the repo, please make sure you enter the right password!
[22:48:05]: ▸ security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
[22:48:05]: ▸ [22:48:05]: Neither the MATCH_PASSWORD environment variable nor the local keychain contained a password.
[22:48:05]: ▸ [22:48:05]: Bailing out instead of asking for a password, since this is non-interactive mode.
[22:48:05]: ▸ [22:48:05]: Couldn't decrypt the repo, please make sure you enter the right password!
[22:48:05]: ▸ security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
[22:48:05]: ▸ [22:48:05]: Neither the MATCH_PASSWORD environment variable nor the local keychain contained a password.
[22:48:05]: ▸ [22:48:05]: Bailing out instead of asking for a password, since this is non-interactive mode.
[22:48:05]: ▸ [22:48:05]: Couldn't decrypt the repo, please make sure you enter the right password!
[22:48:05]: ▸ security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
...

Setting MATCH_PASSWORD fixed the looping problem (just to throw me into the next set of problems... but those are unrelated to this).

noticed same issue, never asked for MATCH_PASSWORD before, now it appears to be blocking everything.  i did do gem cleanup and have latest gem install fastlane


Trouble getting website to run

I downloaded the repo and encountered some issues trying to get it to run. I managed to get it running so the below might help someone else.
I updated all the dependencies, but it was struggling with the following block of code
highlighter.requireGrammarsSync({
  modulePath: require.resolve("language-html/package.json")
});

The terminal said
Error: Cannot find module 'language-html/package.json'

When I tried to manually install the above using npm install language-html/package.json I got a bit console output with errors.
...
13 warnings and 17 errors generated.
make: *** [Release/obj.target/tree_sitter_embedded_template_binding/src/binding.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/limitlessloop/.nvm/versions/node/v12.4.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)

I found an article about debugging issues with make failed with exit code: 2.
https://codeforgeek.com/make-failed-with-exit-code-2/
I followed each step up until step 3, with no luck. Then I tried updating NVM follow the advice on the NVM github repo.
Suddenly it works. I'm not really sure what step in particular fixed the issue but there may be something in here that's useful for others.

After trying to do what you did for about an hour, maybe the best thing is to switch the syntax highlighting for HTML to another package that doesn’t need node-gyp.

The website has transitioned to @marko/serve and @marko/build and a much simpler setup. This issue should be resolved now!


bug: gotls crash

https://github.com/gojue/ecapture/blob/3a813ac5b86b068b7654afad4386b24c9b27a62f/user/event/event_gotls.go#L23-L35
The variable e was used incorrectly(Line 26) during exception handling, causing the data of GoTLSEvent to be empty, and an exception occurred during recording

Can you provide the complete steps to reproduce the issue?

I see.  I will send a PR ,thanks.


Migrate to iOS 17 macro-based observation

https://wwdcnotes.com/documentation/wwdcnotes/wwdc23-10148-whats-new-in-swiftui

Is this the main reference for the observable macro?
https://developer.apple.com/documentation/swiftui/migrating-from-the-observable-object-protocol-to-the-observable-macro/

Yep that’s the one!


Update de.json

fixes three typos

Thanks. we manage the translations via oneskyapp so i have added the changes in there.

No Problem. Nice software by the way!
On Wed, Jan 14, 2015 at 11:34 AM, Henry Oswald<EMAIL_ADDRESS>wrote:

Thanks. we manage the translations via oneskyapp so i have added the
changes in there.
—
Reply to this email directly or view it on GitHub
https://github.com/sharelatex/translations-sharelatex/pull/6#issuecomment-69897536
.

// Please reply above this line
From: Henry Oswald (Support staff)
Thanks!
View this discussion online: http://help.sharelatex.com/help/discussions/company-admin/5813-re-translations-sharelatex-update-dejson-6?anon_token=b0dfb43a4
This discussion is PRIVATE. Please don't share your secret link with anyone.
On Wed, Jan 14 at 11:48 AM, sharelatex/translations-sharelatex wrote:

No Problem. Nice software by the way!

Reply with #ignore to stop receiving notifications for this discussion.


pull request for e2e test at 01/21/2017 00:56:11

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


i there a way i can move the window

What is your question?
is there i can move the engine's window with lua

#8179


Update SDK and JDK versions. Fix compatibility.

 Issue by kirillsmirnov1
Sunday Jul 28, 2019 at 06:47 GMT
Originally opened as https://github.com/android/android-RecyclerView/pull/28

Updated minSDK.
Set dependecies versions to be the same.
Fixed activity call to work with current API.
More details here.

kirillsmirnov1 included the following code: https://github.com/android/android-RecyclerView/pull/28/commits

 Comment by googlebot
Sunday Jul 28, 2019 at 06:47 GMT

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
:memo: Please visit https://cla.developers.google.com/ to sign.
Once you've signed (or fixed any issues), please reply here (e.g. I signed it!) and we'll verify it.

What to do if you already signed the CLA
Individual signers

It's possible we don't have your GitHub username or you're using a different email address on your commit. Check your existing CLA data and verify that your email is set on your git commits.

Corporate signers

Your company has a Point of Contact who decides which employees are authorized to participate. Ask your POC to be added to the group of authorized contributors. If you don't know who your Point of Contact is, direct the Google project maintainer to go/cla#troubleshoot (Public version).
The email used to register you as an authorized contributor must be the email used for the Git commit. Check your existing CLA data and verify that your email is set on your git commits.
The email used to register you as an authorized contributor must also be attached to your GitHub account.

ℹ Googlers: Go here for more info.

 Comment by kirillsmirnov1
Sunday Jul 28, 2019 at 06:48 GMT

I signed it!

 Comment by googlebot
Sunday Jul 28, 2019 at 06:49 GMT

CLAs look good, thanks!
ℹ Googlers: Go here for more info.