Skip to content

Conversation

front-depiction
Copy link

  • Added the ignore package to dependencies.
  • Implemented loading and processing of .convexignore files in the bundler to skip specified files during the build process.
  • Updated entry point logic to respect ignore patterns.

This enhances the build process by allowing users to exclude files from being processed based on their ignore configuration. This brings both Typescript performance boosts and reduced circular dependency relateded issues

- Added the `ignore` package to dependencies.
- Implemented loading and processing of `.convexignore` files in the bundler to skip specified files during the build process.
- Updated entry point logic to respect ignore patterns.

This enhances the build process by allowing users to exclude files from being processed based on their ignore configuration. This brings both Typescript performance boosts and reduced circular dependency relateded issues
  refactor test infrastructure

  - Add comprehensive test coverage for
  .convexignore functionality including:
    - Basic pattern loading and matching
    - Multiple file location checking
  (.convexignore and
  convex/.convexignore)
    - Integration with entryPoints
  function
    - Complex pattern support (globs,
  negations, directories, extensions)
    - Gitignore semantics (root-only
  patterns, wildcards, etc.)
    - Edge cases and invalid pattern
  handling

  - Create TestFilesystem class to
  simplify filesystem mocking in tests
    - Implements Filesystem interface for
   consistent behavior
    - Supports nested directory
  structures via simple object notation
    - Eliminates verbose mock setup code

  - Add test fixtures for .convexignore
  patterns in test_fixtures/convexignore/
    - basic/.convexignore - common ignore
   patterns
    - multiple_files/.convexignore -
  private files and helpers
    - complex_patterns/.convexignore -
  advanced pattern examples
    - gitignore_semantics/.convexignore -
   gitignore-specific behaviors
@thomasballinger
Copy link
Collaborator

This is a good idea but I'd like to think more about it since we're going to be stuck with it forever. The main alternative I'm thinking about is an include list, specifying a glob for listing entry points instead of files to ignore. Re configuration, this might be something that goes in a convex.json instead of a new filename.

I'll leave this open for now for comment, I don't think it's going to be accepted in its current form but we need to talk about how this might be done. If there's not something equivalent in a couple months then bring this back up as "well, if you're not going to do something let's do this in the meantime".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants