Go to file
Paul Fitzpatrick e5b67fee7e (core) visualize simple differences between documents
Summary:
Render simple differences between documents.

 * Show cell changes.
 * Show cell conflicts.
 * Show row additions/deletions.

Doesn't support any schema changes, and is untested in the presence of schema changes.  Any widgets that access row data without using `cells` fields won't receive correct data.

Not addressed:
 * Rendering conflicts in mixed row addition/updating/deleting.
 * Column additions/deletions, option changes, etc.
 * Document level changes.
 * Table and column renames (though anticipated in ActionSummary structure).
 * Page-level changes.
 * Drawing attention to changes (marking changed pages+views, suppressing
   unchanged rows, etc).
 * Rendering differences in views other than GridView.
 * Adding UI for initiating a comparison.
 * Editing while comparing.

Replaces {D2600}

Test Plan: added tests

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D2618
2020-09-29 15:29:40 -04:00
app (core) visualize simple differences between documents 2020-09-29 15:29:40 -04:00
buildtools (core) move data engine code to core 2020-07-29 08:57:25 -04:00
sandbox (core) For autocomplete suggestions in formulas, add links to suggestions we have documentation for. 2020-09-15 15:24:41 -04:00
static (core) move home server into core 2020-07-21 20:39:10 -04:00
stubs/app (core) simplify starting grist-core and add some more usage information 2020-09-24 14:10:58 -04:00
.gitignore Update tsconfig files and switch to _build for outputs, for consistency with main grist repo 2020-05-22 02:14:28 -04:00
bin Initial config with a few files that build on client and server side. 2020-05-20 00:50:46 -04:00
LICENSE.txt (core) Add Apache-2.0 license to grist-core. 2020-08-06 10:59:48 -04:00
NOTICE.txt (core) Add Apache-2.0 license to grist-core. 2020-08-06 10:59:48 -04:00
ormconfig.js (core) move home server into core 2020-07-21 20:39:10 -04:00
package.json (core) move data engine code to core 2020-07-29 08:57:25 -04:00
README.md (core) simplify starting grist-core and add some more usage information 2020-09-24 14:10:58 -04:00
tsconfig.json freshen app/client/ui2018/cssVars.ts 2020-06-23 16:16:38 -04:00
yarn.lock Initial config with a few files that build on client and server side. 2020-05-20 00:50:46 -04:00

Grist

Grist is a modern relational spreadsheet. It combine the flexibility of a spreadsheet with the robustness of a database to organize your data and make you more productive.

⚠️ This repository is in a pre-release state. Its release will be announced when it has all the planned components, and a solid independent build and test set-up. Currently, stand-alone server functionality is present. Release of our web client is planned, along with an extensive test suite.

This repository, grist-core, is maintained by Grist Labs. Our flagship product, available at https://www.getgrist.com, is built from the code you see here, combined with business-specific software designed to scale it to many users, handle billing, etc.

Why Open Source?

By opening its source code and offering an OSI-approved free license, Grist benefits its users:

  • Open Source Community. An active community is the main draw of open-source projects. Anyone can examine source code, and contribute bug fixes or even new features. This is a big deal for a general-purpose spreadsheet-like product, where there is a long tail of features vital to someone somewhere.
  • Increased Trust. Because anyone can examine the source code, “security by obscurity” is not an option. Vulnerabilities in the code can be found by others and reported before they can cause damage.
  • Independence. The published source code—and the product built from it—are available to you regardless of the fortunes of the Grist Labs business. Whatever happens to us, this repo or its forks can live on, so that you can continue to work on your data in Grist.
  • Price Flexibility. You can build Grist from source and use it for yourself all you want without paying us a cent. While you cant go wrong with our fully set-up and supported online service, some organizations may choose the do-it-yourself route and pay for their own server and maintenance, rather than a per-user price. DIY users are often the ones to develop new features, and can contribute them back to benefit all users of Grist.
  • Extensibility. For developers, having the source open makes it easier to build extensions (such as the experimental Custom Widget). You can more easily include Grist in your pipeline. And if a feature is missing, you can just take the source code and build on top of it!

How do I start?

For building from source, you can start with this:

npm install
npm run build:prod
npm run install:python
npm start
# unauthenticated grist api available at http://localhost:8484/api/

Then you can use the Grist API locally to work on a document. Currently you need to "upload" a document to work with it. This makes a copy of it that the server controls - you can find it in the data directory:

curl -F 'upload=@YourDocument.grist' http://localhost:8484/api/docs
# Note the document ID that is returned.

The Data-Tables endpoints are particularly useful.

For using hosted Grist, just head on over to https://www.getgrist.com.

License

This repository, grist-core, is released under the Apache License, Version 2.0, which is an OSI-approved free software license. See LICENSE.txt and NOTICE.txt for more information.