Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decide what goes into Datasette 1.0 #519

Closed
simonw opened this issue Jun 23, 2019 · 4 comments
Closed

Decide what goes into Datasette 1.0 #519

simonw opened this issue Jun 23, 2019 · 4 comments
Labels
Milestone

Comments

@simonw
Copy link
Owner

simonw commented Jun 23, 2019

Datasette ASGI #272 is a big part of it... but 1.0 will generally be an indicator that Datasette is a stable platform for developers to write plugins and custom templates against. So lots to think about.

@simonw simonw added this to the Datasette 1.0 milestone Jun 23, 2019
@simonw simonw added the large label Jun 23, 2019
@simonw
Copy link
Owner Author

simonw commented May 30, 2020

I've made a lot of progress towards this recently:

@simonw
Copy link
Owner Author

simonw commented May 30, 2020

Goals for Datasette 1.0:

  • Generally signify confidence in the quality/stability of Datasette. I think I'm there already.
  • Plugin authors can have confidence that their plugins will work for the whole 1.x release cycle
  • Developers building against Datasette JSON APIs should have confidence in 1.x compatibility
  • Template authors and CSS theme authors should have that confidence too

I think I'm very nearly there for the plugin API. The harder ones are JSON APIs and template authors.

For JSON APIs: The default JSON just isn't right. I find myself using ?_shape=array for almost everything I build.

The template part is harder. I think I need to fully document the template variables for every view - and add protective unit tests that match that documentation.

The CSS theme part is so hard it may not be possible. How do you guarantee stable HTML that won't break with custom CSS when you'll be adding new features during the 1.x release run? The pattern portfolio from #151 should hopefully help a lot there, but I still don't have a complete idea of what this entails or how feasible it is.

simonw added a commit that referenced this issue Jun 12, 2020
@simonw
Copy link
Owner Author

simonw commented Sep 12, 2020

I think I've figured out what to do about stability of the HTML and the default templates with respect to semantic versioning.

I'm going to announce that the JSON API - including the variables made available to templates - should be considered stable according to semver. I will only break backwards compatibility at that level in a major version release.

The template HTML (and default CSS) will not be considered a stable interface. They won't change on bug fix releases but they may change (albeit described in the release notes) on minor version bumps.

Since the template inputs are stable, you can run your own copy of the previous version's templates if something breaks.

This means users (and plugin authors) who make changes to the default Datasette UI will have to test their changes against every minor release. I think that's OK.

If you write plugins that don't affect the Datasette HTML UI you will be able to expect stability across minor version releases.

@simonw
Copy link
Owner Author

simonw commented Nov 15, 2021

I'm happy with this as the goals for 1.0. I'm going to close this issue and create three tracking tickets for the three key themes:

@simonw simonw closed this as completed Nov 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant