Ticket #2531 (assigned defect)

Opened 5 months ago

Last modified 5 months ago

"axiomatic project" Mantissa plugin should generate identifiable components rather than a monolithic thing

Reported by: oubiwann Assigned to: oubiwann (accepted)
Priority: high Milestone: Mantissa Community Release
Component: Mantissa Severity: normal
Keywords: Cc:
Author: oubiwann Branch: branches/multilithic-axiomatic-project-2531

Description (Last modified by oubiwann)

Currently, axiomatic project generates a project with a sample model, view, offering, and a plugin to hook these things up to the tab UI. (Well, actually, it doesn't, but if it worked it would.) This creates a single, impenetrable mass for a new developer to wade through.

While it's helpful to provide a command that will spit out a fully working project, it's not very helpful to provide dummy models and views, especially when there's only one of each and there's no explanation of how to create more. A more discoverable, friendly UI would have subcommands to do things like generate a new model, generate a view that displays a current model, generate a new offering, or add a powerup to add a tab to the navbar.

It's important, however, not to get carried away with too much code generation fanciness; we shouldn't do any AST walking, although it might be acceptable to have a few *very* simple "magic" comments to allow generation tools to regenerate e.g. an offering with new powerups. I would prefer to avoid even that, however; ideally, especially for the first revision, each tool would generate an entirely new module and to be explicit you would have to delete the old module.

I expect these tools to be primarily used as a way to introduce new developers to the idioms involved in writing "pretty" Mantissa code; for example, anything that generates a class should generate a paired (failing) unit test, and there should be no option to turn that off :).

Similarly, for all generated code, we need to have unit tests. This is marked a defect since the current project subcommand doesn't work any more (#2530) and never had any unit tests (#911).

Related tickets:

Change History

03/03/08 15:53:20 changed by glyph

  • description changed.
  • summary changed from Create a better alternative than the "axiomatic project" Mantissa plugin to "axiomatic project" Mantissa plugin should generate identifiable components rather than a monolithic thing.

03/04/08 17:26:50 changed by oubiwann

  • priority changed from normal to high.
  • status changed from new to assigned.
  • description changed.

03/04/08 17:32:00 changed by oubiwann

  • branch set to branches/multilithic-axiomatic-project-2531.
  • author set to oubiwann.

(In [15053]) Branching to 'multilithic-axiomatic-project-2531'

jethro@divmod.org