Skip to main content
Version: 0.1.125 – latest

What Repave does

Repave modernizes a legacy system by agreeing, in writing, what it does — and only then implementing that behaviour against a modern stack. This page is the map: every surface you will meet, what it is for, and where it is documented in full.

Your deployment may not show all of them. A number of surfaces are off unless your operator turns them on, and those are marked below.

The specification is the centre of the product​

Everything here revolves around Gherkin: plain-language scenarios describing what the system does from the outside.

  • The as-is specification is extracted from the legacy codebase. It records what you have today, and each scenario links back to the code it came from.
  • The to-be specification is what you decide you want. You reach it by editing the as-is: keeping behaviour, changing it, or marking it as not required.
  • Implementation runs against the to-be specification, and the same scenarios verify the result.

Nothing is implemented that the specification does not describe, and nothing is verified against a document you have not reviewed.

Getting your code in​

SurfaceWhat it is for
Project creationA project pairs a legacy codebase with the modern one being built from it
Source FilesThe uploaded legacy code, browsable in place
Source encodingLegacy source in a non-UTF-8 encoding is converted before anything reads it
Source repositoriesA project can combine several client repositories into one workspace

Legacy code arrives as an upload, and the modernized codebase is either scaffolded for you or cloned from your own Git server or Team Foundation Server. See Creating a project.

Understanding what you have​

SurfaceWhat it is for
As-Is ArchitectureThe legacy system's structure, as extracted
DB ER Diagram, DB Table Catalog, DB ObjectsThe legacy database, as found in the code
Views, View CatalogThe screens the legacy application presents
ModulesThe unit of work: discovery through delivery happens a module at a time
External SystemsWhat the legacy system talks to, and how each will be treated
Legacy Code ViewerThe source itself, at the line a scenario points to

See Reading the analysis.

Agreeing the behaviour​

SurfaceWhat it is for
Discovered FeaturesThe as-is specification, feature by feature
Scenario editingRules and scenarios, edited directly
Feature DependenciesWhat has to be built before what
To-Be ArchitectureThe modern design the to-be scenarios are written against
Validation RulesStandards every implementation is checked against
DecisionsThe answers you gave, kept per feature and per launch
User JourneysEnd-to-end flows assembled from scenarios across features

See Reviewing the as-is specification, Deciding the to-be specification, Validation rules, Decisions and User journeys.

Building it​

SurfaceWhat it is for
Develop FeaturesLaunching and following an implementation
Implementation planHow the work was broken up, and in what order
UI PrototypeA design for the feature, approved before the code is written
New Code ViewerThe modernized codebase as it stands
CompareLegacy and modernized side by side
Pull RequestsEvery pull request Repave opened, in pull-request merge mode
BundlesFinished features assembled and tested together before they merge
View Source Code (web IDE)A full editor in the browser, sharing the agent's workspace

See Implementing a feature, UI prototypes, The web IDE, Bundles and Comparing legacy and modernized code.

Checking it​

SurfaceWhat it is for
Reports, Report CatalogTest runs and what they found
Test ReplayRe-running a scenario and pinning what went wrong
Bug ReportsProblems raised against a running application, investigated by an agent
VerificationsAgent questions that paused a job, waiting on your answer (off by default)
UAT ToolsUser-acceptance environments per feature (off by default)
Cucumber Test Runner, Unit Test RunnerRunning suites from the browser (off by default)

See Test runs and reports and Bug reports.

Running the platform​

SurfaceWhat it is for
Analysis Jobs, QueueEverything the platform is doing, or has done
Agent LogsWhat an agent actually did, step by step
CostsWhat each feature and each stage spent (hidden by default)
Upstream SyncChanges made outside the platform, brought in
APIs, API Catalog, API Spec, API PlaygroundThe interfaces the system exposes
SettingsMerge mode, implementation gates, models, integrations
TeamWho can see and change this project

See Jobs, Project settings, Upstream sync, Costs and APIs.

Batch job conversion​

A second project type converts scheduled or triggered jobs that read and write a legacy database, with the same emphasis on an agreed description before anything is rewritten. Batch Catalog and Batch Jobs replace the feature surfaces for those projects, and a converted job is verified by running the legacy job and its replacement and comparing what each did.

See Batch job conversion.

Where to go next​