Skip to content

Specify Development Landscape April 2021

Max Patiiuk edited this page Apr 2, 2021 · 2 revisions

A survey of the Specify development landscape

Specify 7

New development

Workbench

  • Current main priority
  • Eliminate bugs in current Sp7 uploader (by replacing)
  • More flexible than Sp6 uploader
  • New code in Typescript and React
  • New code in Python is type checked with MyPy
  • Better automated test coverage

Maps

  • Max is standardizing Sp7 to use Leaflet for all mapping
  • Figuring out map tile servers

APIs

  • Document existing by generating OpenAPI / JSONSchema
  • Build out new?

Permissions system

Next big effort on the horizon?

Authentication alternatives

  • LDAP exists but is not being used
  • SAML exists on a branch
  • OAuth?
  • Relates directly to permissions and APIs

Third party integrations

  • Lifemapper services
  • Symbiota
  • Geolocate CoGe
  • Aggregators

Sp6 parity

  • Schema config tool(s)
  • Batch reidentify
  • UI Localization
  • Definitive list tracked in a Zenhub epic

Bug fixing

  • Issues tracked in Github
  • Periodically the backlog is dredged for development targets
  • Trivial fixes identified during diagnosis typically skip the backlog

Legacy development

  • Updating out-of-date dependencies
  • Add tests for existing code
  • Add typechecking to existing code
  • Document existing code
  • Improve how settings are managed
  • Improve how code base is organized

Release process

  • Dockerization has been started but needs to be dogfooded
  • Continuous integration with more fine grained releases?

Specify 6

Tim could address this area better

New development

  • Deaccessions
  • Regex formatter

Challenges

Old dependencies

  • Hibernate
  • Apache HTTP libs
  • iReport

Loss of institutional knowledge

Except for Tim, programmers present during the bulk of development have moved on

Webportal

CSV

Data is now loaded as CSV which will eventually enable exports from Sp7 to be implemented.

Dockerization

How best to do it

Asset Server

Python 3

Conversion has been done on a branch. Needs testing and dogfooding

Dockerization

Ditto

Replace?

Are there existing solutions that could be used in place of our bespoke solution?

SpecifyCloud

System administration

  • 12 hosted VMs
  • Main North America mysql server needs to be migrated from Mysql 5.5
  • Transition from Apache WSGI to Gunicorn in Docker

Operations

  • Loading new databases
  • Loading assets
  • Bulk data updates. E.g. move data between fields
  • SSH portal support

Assets

  • 300GB currently
  • Move from FS storage to object storage as cost saving measure?

Maintenance

  • Server updates
  • Backups
  • Monitoring

Support activity

Data conversions

Bugs or emergent issues

Installation issues

  • Users sometimes require support installing Specify 6 or 7 or related packages
  • Mysql installation issues

Configuration

  • Form or report edge cases that can’t be addressed by frontline support
  • Mysql configuration and password issues
  • Networking issues
Clone this wiki locally