Skip to content

Sync: align ncbo/goo with the AgroPortal codebase#176

Merged
mdorf merged 155 commits intomainfrom
ontoportal-lirmm-development
Mar 19, 2026
Merged

Sync: align ncbo/goo with the AgroPortal codebase#176
mdorf merged 155 commits intomainfrom
ontoportal-lirmm-development

Conversation

@mdorf
Copy link
Member

@mdorf mdorf commented Mar 12, 2026

Overview

This PR aligns the ncbo/goo repository with the version of the codebase maintained by the AgroPortal project.

The AgroPortal GOO repository originated from the same codebase as ncbo/goo, but has evolved independently over time with additional features (e.g., schemaless Solr implementation, multi-triple-store compatibility), infrastructure upgrades (e.g., Ruby 3.2 compatibility, RDF 3.x gem support implementing the RDF 1.1 spec), dependency updates, and expanded testing support.

To restore alignment across OntoPortal-based projects and simplify long-term maintenance, this PR adopts the AgroPortal-maintained version of the codebase as the new baseline. This is implemented as a full codebase replacement rather than a merge, followed by a small set of NCBO-specific adjustments applied on top.

Prerequisites

This PR depends on the following change:

The updated goo codebase relies on the aligned version of sparql-client introduced in this PR.

Source baseline

The code adopted in this PR is based on:

agroportal/goo
branch: development

This branch represents the current development baseline used by the AgroPortal project.

Scope of this change

This PR replaces the existing ncbo/goo implementation with the AgroPortal-maintained version of the codebase. As a result, the diff is large and includes:

  • infrastructure upgrades
  • dependency updates
  • improvements to search and indexing
  • expanded CI and testing support
  • various bug fixes and internal improvements accumulated in the AgroPortal project

After importing the AgroPortal baseline, several NCBO-specific fixes and adjustments were applied.

Additional changes applied on top of the AgroPortal baseline

The commits following the import point (0a1c9fee157bc360cda10abb24abca71d5ec0a38) include a set of targeted fixes and adjustments discovered while running the GOO unit tests in the NCBO environment.

These changes fall into the following categories.

Re-applied NCBO functionality

Some functionality present in the original NCBO codebase was reintroduced:

  • re-applied NCBO validators
  • re-applied validation logic
  • restored support for the :bypass_cache option

Search and query fixes

Several commits address issues related to search configuration and query behavior:

  • fixed incorrectly defined text_suggest_ngram field
  • adjusted filter ordering for text_suggest_ngram
  • prevented search filtering issues with unicode letters and numbers
  • improved error reporting in submit_search_query

These fixes improve reliability and correctness of search functionality.

Schema and RDF-related adjustments

A few commits address schema definitions and RDF-related warnings:

  • added Solr 'default' value to schema; added :url dynamic field
  • remove warning: already initialized constant RDF::Literal::DateTime::FORMAT
  • corrected resource type in schema (string instead of string_ci)
  • clarified behavior of how indexable objects are merged

CI and testing infrastructure improvements

Multiple commits improve test stability and CI execution:

  • updated Docker image used for testing
  • fixed failing tests (test_query_flood, test_chunks_write)
  • introduced a docker-based test runner
  • added Linux container test support
  • centralized Safety Guard reset logic in test helpers
  • integrated the OntoPortal testkit
  • fixed non-deterministic test failures

Configuration and backend adjustments

Some configuration-related changes were made:

  • renamed triple-store name used for GraphDB (gb → gd)
  • corrected redis config (rename to goo_redis)
  • removed unused settings

How to review this PR

Because this PR replaces a large portion of the repository, reviewing it line-by-line is not recommended.

Reviewers may find it easier to:

  1. Review this description for the high-level scope of the change.
  2. Compare the repository against the AgroPortal baseline if needed.
  3. Focus review attention on the commits made after the AgroPortal import point, which contain the NCBO-specific fixes and adjustments.

Motivation

Maintaining separate diverging versions of the goo codebase increases maintenance overhead and complicates compatibility across OntoPortal-based deployments.

By adopting the AgroPortal-maintained version of the codebase, this change:

  • restores alignment between related OntoPortal projects
  • allows sharing improvements and fixes more easily
  • simplifies long-term maintenance of the goo repository
  • brings in accumulated infrastructure and testing improvements

Vincent Emonet and others added 30 commits October 25, 2016 15:41
… a value only the object with a language included in main_languages will be taken (value with no lang defined are taken too). Be careful if an ontology contains several prefLabel with lang defined here
The main_lang is the main lang used to extract prefLabels. Accepted lang is used to extract all others properties
…bo_merge_goo_into_virtual-appliance-3.0-merge
mdorf and others added 23 commits January 29, 2026 22:44
  - remove custom wait logic; rely on docker compose --wait healthchecks
  - add linux overrides to run unit tests in a container (useful on macOS)
  - add no-ports override for containerized runs
  - update compose mounts and move backend fixtures to test/fixtures
  - document docker test commands and env vars
  - ensure redis host is read from goo_redis (not redis)
  - update sample config to match
  When adding rake tasks for running unit tests in linux containers,
  unit tests started failing due to unsafe target detection and state leakage.
  This refactor consolidates safety checks into TestSafety,
  moves test_reset into test helpers. It also adds a redis key-count guard to
  abort against non-test instances.
Infra/Refactor docker-based test runner and add linux container tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants