Go back

Experimental Rust Support, Fixes, and Improvements

March 30, 2023

Changelog

New Teletype Actions

This week we have added Rust support with Cargo, expanded the default the .spaceignore file and added JSON Schema validation for the Spacefile in our CLI, and added more Teletype actions like searching for collections, viewing the builds and releases of a project and even searching through Discovery.

Rust enters experimental support with Cargo

You can now use Cargo and deploy your Rust apps to Space! Rust support is still experimental, let us know if you hit any bugs.

Check out the quickstart guide to get started.

New default .spaceignore patterns

Up until now the Space CLI only ignored a few directories (node_modules and __pycache) by default when uploading your app’s source code during space push. For most apps, you’d have to create your own .spaceignore file if you wanted common hidden files, cache directories or build outputs to be ignored. This led to a lot of confusion and frustration when trying to deploy apps that had a lot of files that were not needed for the app to run.

We have now added a few more patterns to the default .spaceignore file which matches files and directories we think should be ignored by default (expand for full list).

New list of files/directories that are ignored by default
Terminal window
# space
.space
.spaceignore
# version control
.hg
.git
.gitmodules
.gitignore
.svn
# build
build
dist
# js frameworks
.next
.nuxt
.svelte-kit
.astro
# node
node_modules
.npmignore
.cache
.yarn
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# python
.venv
venv
virtualenv
__pycache__
# rust
target
# coverage
*.lcov
.nyc_output
.coverage
.coverage.*
# docker
.dockerignore
# env
.env.local
.env.*.local
.env
.envrc
# ide
.*.swp
.vscode
.history
# system
.DS_Store
# other
.lock-wscript
config.gypi
CVS

Upgrade to the latest CLI version with the following command to get the new default ignore list:

Terminal window
space version upgrade

If you haven’t installed the CLI yet, you can do so by following the instructions in our docs.

If you want to ignore more files or directories, you can do so by creating a .spaceignore file at the root of your project and adding them to it. If you want to include a file or directory that is ignored by default, add them to the .spaceignore file negated with an exclamation mark (!) in front of the file or directory name:

Terminal window
# include .env file
!.env

Learn more about the .spaceignore file and the default ignore list in the docs.

If you have any suggestions for other patterns to add to the default .spaceignore file, please let us know on Discord.

Improved Spacefile validation

We are now using JSON Schema to validate the Spacefile which means you’ll get better error messages when you have a syntax error in your Spacefile:

Terminal window
Detected some issues with your Spacefile. Please fix them before pushing your code.
Spacefile
L missing properties: 'v'
L micro "python-app"
L missing property: 'engine'
L missing property: 'src'

You can also use the JSON schema in your IDE to get better autocompletion and validation. For example, in VS Code you can add the following to your settings.json file to enable JSON Schema validation for the Spacefile:

{
"files.associations": {
"Spacefile": "yaml"
},
"yaml.schemas": {
"https://deta.space/assets/spacefile.schema.json": ["Spacefile"]
}
}

You will need to have the YAML extension installed for this to work.

Thanks to @lemonyte for bootstrapping the Spacefile JSON Schema!

New Teletype Actions

We have added more Teletype actions to make it easier to work with your projects and other data in Space. Actions are now more unified between pages, meaning you can now search for apps on Discovery from your Horizon, open a Builder project or collection from Discovery and even view your latest builds of a particular Builder project.

Searching for Projects
Searching for Projects

We have also improved the “Available App Updates” action so you can now update your apps right from Teletype:

Install App Update
Install App Update

Give the improved Teletype a try and let us know what you think! You can also expect some major improvements to Teletype’s abilities in the coming weeks, stay tuned!

Bug Fixes and Improvements

  • Fixed intermittent timeout issues when pushing apps to Space
  • Improved handling of large pushes with better error messages
  • Other smaller bug fixes and stability improvements

Thank you for all the valuable feedback — please continue to share your thoughts as we work to build and improve Space.