Сценарій · Стежити за проєктом

Стежте за своєю бібліотекою: що про неї і сусідні пишуть в інтернеті.

Ви підтримуєте бібліотеку, а важливе для вас розкидано по issues і релізах вашого репозиторію та сусідніх. Назвіть їх, скажіть, чого ви хочете і як узагальнювати кожен матеріал, і читайте одну стрічку. Нижче справжній канал.

Команда feedql · Читається наживо з каналу feedql

Оновлено

Дайте feedql фіксований список репозиторіїв, одну інструкцію про те, які матеріали вам потрібні (about), і одну про те, як писати підсумок (format), і одна тема перетворить issues та релізи восьми RDF-бібліотек на короткий список того, що може вплинути на ваш код, кожен з посиланням на оригінал.

Як це виглядає зараз?

Це найновіші матеріали каналу лише для читання, що належить облікові feedql. Він стежить за tggo/goRDFlib, Go-бібліотекою для RDF, і сімома схожими: rdflib, Apache Jena, rdf4j, Oxigraph, N3.js, knakk/rdf та deiu/rdf2go. Список читається на сервері, коли ви відкриваєте сторінку, і зберігається десять хвилин. Сіра позначка каже, чи підсумок у форматі, який просить тема, чи звичайний. Заголовки лишаються англійською, як у джерелі.

Наживо з каналу feedql, прочитано

  1. oxigraph/oxigraphissue

    oxrdfxml rejects <!ENTITY> declarations whose value is in single quotes

    Підсумок у форматі теми Issue: oxrdfxml rejects <!ENTITY> declarations whose value is in single quotes What broke: The RDF/XML parser fails on a DOCTYPE entity declaration with a single-quoted value, such as <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>, returning the error "<!ENTITY values should be enclosed in double quotes". Double-quoted entities parse correctly. Expected: both forms yield the same triple. Version: oxrdfx…

    github

  2. oxigraph/oxigraphissue

    Allow configuring RocksDB’s WAL size threshold

    Підсумок у форматі теми Title: Allow configuring RocksDB's WAL size threshold Source: GitHub (Oxigraph) This is a feature request, not a reported bug. It asks whether Oxigraph can expose RocksDB's max_total_wal_size setting. RocksDB uses this threshold to trigger column-family flushes so older WAL files can be removed. Making it configurable would help deployments with limited disk space balance WAL size against flush frequency. The settin…

    github

  3. eclipse-rdf4j/rdf4jissue

    Add an interactive Graph Explorer to RDF4J Workbench

    Підсумок у форматі теми Title: Add an interactive Graph Explorer to RDF4J Workbench Type: feature request (GitHub source) The request asks for a Graph Explorer page for each repository in the RDF4J Workbench. Users would load a sample, find resources, or run CONSTRUCT/DESCRIBE or SELECT queries, then add results to a graph workspace. The workspace would support incremental node expansion, remaining-link counts, pan/zoom/drag/pin/hide, path…

    github

  4. eclipse-rdf4j/rdf4jissue

    Enable scope-aware FILTER pushdown and UNION pruning

    Підсумок у форматі теми Title: Enable scope-aware FILTER pushdown and UNION pruning (source: GitHub issue) Problem: The query optimizer treats a UNION that introduces branch-local variables as a general barrier to FILTER placement, leaving safe branch-specific FILTER simplification and rejection unused. Example: FILTER(BOUND(?x)) after UNION of { VALUES ?x { 1 2 } } and { VALUES ?y { 3 } } is true for the first branch and rejects the secon…

    github

  5. rdflib/rdflibissue

    Relative IRI resolution and relativization deviate from RFC 3986

    Підсумок у форматі теми Issue: Relative IRI resolution and relativization deviate from RFC 3986 What broke: rdflib does not resolve or produce relative IRIs as RFC 3986 §5 specifies. Each case parses but names a different IRI. Problems 1-3 are in join() in rdflib/plugins/parsers/notation3.py, used by the Turtle, TriG and N3 parsers. Problem 4 is in the serializers. Problems: 1. The base's fragment is kept. join("http://example.org/doc#", "…

    github

  6. rdflib/rdflibissue

    SPARQL `ORDER BY` on an expression that errors raises `TypeError`

    Підсумок у форматі теми Title: SPARQL ORDER BY on an expression that errors raises TypeError Source: github (rdflib) What broke: In rdflib's SPARQL evaluator, evalOrderBy sorts with a key that calls _val on the result of the sort expression. When the expression errors for a solution, _val returns None, and Python's sorted then raises TypeError (for example "'<' not supported between instances of 'NoneType' and 'NoneType'") out of the query…

    github

  7. rdflib/rdflibissue

    SPARQL `||` / `&&`: a bare unbound operand makes the whole expression an error

    Підсумок у форматі теми Issue: SPARQL `||` / `&&` with a bare unbound operand makes the whole expression an error. What broke: In `ConditionalOrExpression` and `ConditionalAndExpression` (rdflib/plugins/sparql/operators.py), operands are read as `e.expr` and `e.other`, which calls `value()` with `errors=False`. A bare unbound variable raises `NotBoundError` before the operator's error-tolerant logic runs, so the whole expression becomes an…

    github

  8. rdflib/rdflibissue

    `Graph.parse(source=<file object>)` resolves relative IRIs against the raw filesystem path, which fails on Windows

    Підсумок у форматі теми Issue: Graph.parse(source=<file object>) resolves relative IRIs against the raw filesystem path, which fails on Windows. Which version: not stated. What broke: When an open file is passed as source=, create_input_source uses the file's name as the system ID unchanged. The same file passed as file= is converted to a file URI via pathlib.Path(name).absolute().as_uri(), so the two arguments disagree. On Windows, a name…

    github

  9. rdflib/rdflibissue

    `Graph.parse(file=...)` fails for a text-mode `SpooledTemporaryFile` with the nt, nquads, json-ld and hext parsers

    Підсумок у форматі теми Issue: Graph.parse(file=...) fails for a text-mode SpooledTemporaryFile (mode="w+") with the nt, nquads, json-ld and hext parsers. What broke: Parsing a text-mode SpooledTemporaryFile through file= raises TypeError: can't concat str to bytes for nt, nquads and json-ld, and AttributeError: '_io.TextIOWrapper' object has no attribute 'read1' for hext. turtle, n3, trig and xml parse successfully. Before #3583 every par…

    github

  10. rdflib/rdflibissue

    SPARQL IN/NOT IN: an unbound variable in the list makes the whole expression an error

    Підсумок у форматі теми Issue: SPARQL IN/NOT IN with an unbound variable in the list Source: GitHub issue (rdflib) What broke: In rdflib, an unbound variable anywhere in the list of an IN expression makes the whole IN expression an error. SPARQL 1.1 §17.4.1.9 says an error should affect only the comparison involving that term, so a match elsewhere in the list should still succeed. Example: with a graph containing (urn:ex:s, urn:ex:p, 2), t…

    github

  11. rdflib/rdflibissue

    longturtle canon=True raises ValueError for a Dataset

    Підсумок у форматі теми Issue: longturtle canon=True raises ValueError for a Dataset What broke: Calling serialize(format="longturtle", canon=True) on an rdflib Dataset raises "ValueError: too many values to unpack (expected 3)". Without canon, the call works. Version: not stated. Cause: LongTurtleSerializer.canonize() passes the store to rdflib.compare.to_canonical_graph, which iterates it as triples. A Dataset iterates quads, so the unpa…

    github

  12. oxigraph/oxigraphissue

    In-memory store never reclaims removed quads or unused strings

    Підсумок у форматі теми Issue: In-memory store never reclaims removed quads or unused strings What broke: In lib/oxigraph/src/storage/memory.rs, removing a quad closes its VersionRange, but the QuadListNode stays in quad_set and in the four previous* chains, and nothing removes it. Memory grows with every removal without bound on long-running stores that churn values. quads_for_pattern walks dead nodes, so scans by subject slow down as val…

    github

Що ви даєте feedql?

Нічого тут не стосується саме бібліотек. feedql не знає, що таке бібліотека, і сам не шукає конкурентів: список сусідів ваш. Людина або її ШІ-агент дає темі п'ять речей.

  • Пошукові слова й назви. goRDFlib, sparql, turtle і назви для must_see, як-от tggo/goRDFlib, які показуються завжди, що б не вирішила тема.
  • Фіксований список посилань. Репозиторії GitHub вище. Підписка на репозиторій приносить його issues і релізи.
  • about: які матеріали вам потрібні. Це інструкція, яку читає модель відбору: «Я підтримую goRDFlib. Показуй баги, релізи й запити на функції цих RDF-бібліотек, що можуть вплинути на неї або чого вона може навчитися: помилки парсера й серіалізатора, поведінка SPARQL і SHACL, продуктивність, несумісні зміни. Без вакансій, туторіалів і шуму від ботів.»
  • format: як писати підсумок. «Для issue: що зламалося, в якій версії, обхідний шлях і чи може це зачепити Go-бібліотеку для RDF. Для релізу: що змінилося важливого для бібліотеки, яка читає, зберігає чи опитує RDF.»
  • За бажанням, пошук додаткових джерел. feedql може пошукати ще джерела, але це може принести хибні збіги, наприклад інший проєкт з такою самою назвою, тож агент має показати кожного кандидата і додати лише підтверджених вами.

ШІ-агент, підключений до feedql через MCP, отримує все це з підказки track_project: питає у вас слова, назви й список, пише дві інструкції, робить пробний запуск і підписує тему.

Як це влаштовано?

  • Відбір це модель, що читає about. Кожен матеріал із репозиторіїв оцінюється за вашою інструкцією; що нижче порога теми, не показується, а причину видно в один дотик.
  • Формат змінює лише підсумок. Коли матеріал теми відкривають або застосунок просить його підсумок, невелика модель пише його у вашому вигляді, і тема його зберігає. Текст issue для цієї моделі лише дані: issue зі словами «ігноруй свої інструкції» узагальнюється, а не виконується, і формат не може змінити чужі підсумки.
  • Це має ціну й стелю. Один невеликий модельний виклик на матеріал, що читають, на рахунок теми, не більше 40 на добу; далі лишається звичайний підсумок, і матеріал про це каже.
  • Працює для будь-якої мови. Попросіть lang=uk, і підсумки будуть українською.

Чого воно не робить?

  • Не шукає ваших конкурентів. Список ваш. Пошук додаткових джерел необов'язковий і може принести хибні збіги.
  • Підсумок це прочитання моделі. Вона може пропустити деталь або назвати її хибно; оригінальне issue завжди з посиланням, а формат просить писати «не вказано», коли тексту бракує.
  • Не читає приватних репозиторіїв і вашого коду. Воно знає лише публічне. «Чи зачіпає мій код» означає «чи може зачепити бібліотеку, схожу на мою», а не аналіз вашого репозиторію.
  • Нові репозиторії потребують часу. Матеріали приходять, коли джерела прочитано, а підсумок пишеться, коли матеріал уперше відкривають чи запитують.
Чи треба бути автором бібліотеки, щоб це використовувати?

Ні. Ніщо в налаштуванні не стосується саме бібліотек: тема приймає пошукові слова, назви, фіксований список посилань, інструкцію про те, які матеріали потрібні, і ще одну про те, як писати підсумок. Продуктова команда може так само стежити за власним репозиторієм і примітками до релізів конкурентів.

Чи знаходить feedql схожі проєкти за мене?

Ні. Список даєте ви. feedql може за бажанням пошукати ще джерела, але це може принести хибні збіги, тож кожного кандидата треба підтвердити перед додаванням.

Скільки коштує формат підсумку?

Один невеликий модельний виклик на кожен матеріал, який ви відкриваєте чи запитуєте в цій темі, на рахунок теми, не більше 40 на добу. Коли добове число вичерпано, лишається звичайний підсумок.

Чи може текст issue змусити модель зробити щось інше?

Ні. Текст матеріалу подається моделі підсумків як дані, окремо від вашого формату і від незмінних правил, а відповідь зберігається лише як підсумок для вашої теми.

Стежте за своїм проєктом

Залиште пошту і репозиторій, який ви підтримуєте. Перші місця отримає невелика група.