Releases: Convertiv/handoff-app
Releases · Convertiv/handoff-app
Interoperability, quality of life and security improvements
Changes
- All environment variables now contain the
HANDOFF_
prefix.- After updating to version 0.12.0, all environment variables need to be updated to reflect the new variable names:
FIGMA_BASE_URL
->HANDOFF_FIGMA_BASE_URL
DEV_ACCESS_TOKEN
->HANDOFF_DEV_ACCESS_TOKEN
FIGMA_PROJECT_ID
->HANDOFF_FIGMA_PROJECT_ID
OUTPUT_DIR
->HANDOFF_OUTPUT_DIR
SITES_DIR
->HANDOFF_SITES_DIR
USE_HANDOFF_PLUGIN
->HANDOFF_USE_HANDOFF_PLUGIN
CREATE_ASSETS_ZIP_FILES
->HANDOFF_CREATE_ASSETS_ZIP_FILES
- After updating to version 0.12.0, all environment variables need to be updated to reflect the new variable names:
- The default integration is no longer pre-defined.
- Bootstrap 5.3 is no longer set as the default integration.
- To continue using the Bootstrap 5.3 integration in your project, ensure the configuration is ejected (
handoff-app eject:config
) and update it by setting theintegration
property to{name: 'bootstrap', version: '5.3'}
.
- All default options specified in the configuration that are used by the exporter and transformer have been removed.
- To continue using the defaults present before the 0.12.0 release, ensure the configuration is ejected (
handoff-app eject:config
) and update thefigma.options
property to the previous default value.
- To continue using the defaults present before the 0.12.0 release, ensure the configuration is ejected (
- The logo placeholder copy showing spacing and orientation has been removed allowing users to add custom content via Markdown.
Improvements
- Handoff now appends to existing
.env
files instead of overriding them if the file already exists. - Introduced normalization of numeric values in
.css
and.scss
files, along with correct indentations. This ensures that the generated files are valid for any local linting tools your project might use. - Configuration ejected by the
handoff-app eject:integration
command is now the same as the one ejected by thehandoff-app eject:config
command. - Handoff no longer uses the
iframe-resizer
package. - Resolved potential security issues by updating to newer versions of the
axios
andnext
packages.
Commits
- Merge pull request #147 from Convertiv/release/0.12.0 9ebda1f
- Merge pull request #146 from Convertiv/changelog/0.12.0 bc27f88
- Changelog for 0.12.0. 9369ead
- Merge pull request #145 from Convertiv/ux/logo-improvements 3a519e7
- Removing debugging 05e4ead
- Removing unneded skip 7bc18c0
- Proposing change to config init when running next commands without first fetching e12083b
- Removing logo sizing defaults 89815bd
- Clean up of project id c90e805
- Removing logo section 75ece0f
- Merge pull request #144 from Convertiv/feature/consolidate-ejected-configs e949876
- Updated ejectIntegration to eject the same local configuration as the ejectConfig does. 8f66045
- Merge pull request #142 from Convertiv/feature/remove-default-options ec43417
- Merge pull request #143 from Convertiv/feature/normalize-css-number-values 2280a23
- Fixed indentations for foundation (colors, effects, typography) css files. 318e790
- Introduced css number value normalization. f7e7751
- Removed default options. Removed hardcoded cssRootClass "button" to "btn" replacement rule. Removed all specified cssRootClass properties from legacy exportable schemas. 3ad38a6
- Merge pull request #139 from Convertiv/ops/next-14-update 7506970
- Requirements update. 119717c
- Removed all iframe-resizer references. d1506d2
- Build app.js 1efba3a
- Removing iframe resizer 80059d6
- Security patches - Axios and Nextjs 20a9857
- 0.12.0 5ec1d47
- Merge pull request #141 from Convertiv/feature/disable-default-integration b45da3d
- Disabled default bootstrap 5.3 integration. No integration is generated by default. 3b260e9
- Merge pull request #140 from Convertiv/feature/append-to-env-if-already-exists 59b3ffd
- Added HANDOFF_ prefix to all handoff env variables. c3a3fe8
- Now appending to .env file if the file already exists. 274f2f6
Default support for plugin flow. Fixes and quality of life improvements.
Bugfixes
- Issue that was causing the
handoff-app start
command to malfunction has been fixed. - The
Reference error: name is not defined
issue that occurred when a component specified in the schema was missing from the Figma file has been resolved. Thename
reference has been replaced with a correct identifier. - Icon sizes have been corrected.
Changes
- Integration with Handoff Figma Plugin: This release now seamlessly integrates with the Handoff Figma Plugin by default.
- As a result, the local schema will not be used by default.
- If you prefer to continue using local schemas, set
USE_HANDOFF_PLUGIN="FALSE"
in your.env
file.
- Internal module working directory has been relocated from
./src
to./.handoff
Commits
- Merge pull request #138 from Convertiv/release/0.11.0 fb7eb70
- Changelog for 0.11.0. ab45341
- Merge pull request #137 from Convertiv/bugfix/icon-size 714fef9
- Merge pull request #136 from Convertiv/feature/handoff-figma-plugin-prep a90046b
- Build. 29e48d8
- Fixed "Reference error: name is not defined". 82d671d
- Removed leftover commments. 32149a1
- Fixing icon size issues bbc6dad
- Added more control to the configuration file. Implemented option to choose the directory name of the docs app site. 14b2237
- Resolved webpack @handoff alias issue. 57b556d
- 0.11.0 20122dc
- Removed "classnames" lib. Moved docs app working dir(s) to a new .handoff dir in the root. Introduced @handoff alias to help move the docs app working dir(s). 993afba
Initial Handoff Figma Plugin support. Improvements to docs app and configuration management.
Initial Handoff Figma Plugin support. Improvements to docs app and configuration management.
Pre-release
Pre-release
Changes
- Handoff Figma Plugin Support:
- Introduced initial support for the Handoff Figma Plugin.
- Currently an opt-in feature as development is ongoing.
- Can be enabled by setting
USE_HANDOFF_PLUGIN="TRUE"
in your.env
file. - This functionality allows Handoff to extract metadata directly from the Figma file. Local JSON definitions are completely ignored in this case.
- Will become the default behavior in the 1.0.0 release!
- Deprecation Notice:
- Deprecated local exportable component JSON definitions.
- Still usable, but will be completely removed and ignored before the 1.0.0 release.
- Components, parts, and related definitions should be defined with the Handoff Figma Plugin prior to the 1.0.0 release.
Improvements
- Docs App:
- Updated docs app to present components without associated content and assets more elegantly.
- Improved the component pages by showing only the "Tokens" tab when no previews are detected; the "Overview" tab is hidden in such cases.
- Configuration Handling:
- Eliminated the need for
handoff.state.json
file. - All required parameters are now passed to the docs app through environment variables (
process.env
), defined in the project's respectivenext.config.js
file. - Replaced
getConfig
with the more securegetClientConfig
function. - New function returns only configurations that can be safely exposed on the client side.
- Eliminated the need for
Commits
- Merge pull request #134 from Convertiv/release/0.10.0 ca0909d
- 0.10.0 changelog. 1895cc2
- Merge pull request #133 from Convertiv/feature/improve-component-docs-when-no-previews-are-available d97e666
- Docs component name improvements. 207ad18
- 0.10.0 ad1d31f
- Merge pull request #132 from Convertiv/feature/improve-component-docs-when-no-previews-are-available 9a57e13
- Updated how the component docs page renders when there are no available previews. ba019c0
- Merge pull request #131 from Convertiv/feature/handoff-figma-plugin-support 8739b43
- Updates to better accomodate removal of the handoff state. 225bdf0
- Ignore component set if componentPropertyDefinitions is undefined or null. 7d4c777
- Update fetch flow notices. d8b2dc9
- Implemented support for plugin provided defaults. 0a00d2f
- Added missing deprecation notice. 5d2c947
- Legacy definitions now load only when environment is configured to use legacy definitions. Serialization bugfix (undefined -> null). 60823a4
- Support for legacy component definitions. 89339c8
- Introduced initial Handoff Figma plugin support. 2a2d604
- Merge pull request #130 from Convertiv/feature/remove-state-serialization 9c4ac79
- Removed the no longer referenced saveHandoffState function. 45f211a
- Removed handoff state serialization. Parameters that were previously used from the serialized state are now read from the environment (defined in respective next.config.js files). 6e8537b
Support for part confitions and processing of multiple component sets in the frame
Pre-release
Improvements
- It's now possible to declare conditions for exportable component parts. Condition dictates should the part be built based on provided condition (e.g. does a specific variant property have a certain value etc.).
- Handoff will now process all component sets found within the frame in which the component set that matches the search is found. Previously it was limited to process only one (first) extra component set while others were ignored.
Changes
- Component preview title will no longer default to the value of the first variant property if no distinctive value is found. Empty value is now used instead.
Bugfixes
- Update of the app source will now update the watched app without having to restart the watch process (issue introduced in version 0.9.0).
Commits
- Merge pull request #129 from Convertiv/release/0.9.3 1c6668f
- 0.9.3 changelog. 8083a30
- 0.9.3 329f6dd
- Merge pull request #128 from Convertiv/feature/handle-app-source-changes-when-running-app-watch ae64264
- Merge pull request #126 from Convertiv/feature/introduce-support-for-conditional-exportable-parts 1d51262
- Merge pull request #125 from Convertiv/feature/support-for-any-amount-of-component-sets 2f30fbe
- Merge pull request #127 from Convertiv/feature/component-demo-title-improvements 30c2822
- Resolved implicit any type warning for fileComponentSetsRes. 61da519
- Minor performance and readability improvements to getComponentSetComponents. c7201f6
- Changes in the app source directory now get reflected to the currently running app when running the watch app command. fad5b99
- If no (possible) distinctive name is found for a given component preview, first possible value will no longer be used. Empty string will be used instead. 71d7b4c
- Exportable components can now specify condition in which the given part should be generated or ignored. 73f3ab4
- Updated method that retrieves component set components to support more than two component sets for given frame. 39058ec
Introducing support for bearer tokens
Improvements
- Handoff now supports both personal access and OAuth2 bearer tokens. If Handoff detects that a access token used starts with "Bearer " it will use the
Authorization
header to send the token as part of any Figma API request. In any other case,X-Figma-Token
header will be used.
Commits
- Merge pull request #124 from Convertiv/release/0.9.2 839140e
- 0.9.2 503b27f
- Merge pull request #122 from Convertiv/feature/support-figma-bearer-tokens d586299
- Merge pull request #123 from Convertiv/changelog/0.9.2 b1a49b2
- 0.9.2 changelog. 0d2664d
- Updated bearer token prefix resolvement. 8c12fdd
- Introduced a simple way of supporting bearer tokens. f3e184f
Token maps export feature + App is now rendering footer component again
Changes
- Footer component has been brought back into the app and is now visible on all pages.
- Introduced token maps export feature which exports generated tokens alongside their respective values in form in JSON files (key/value object). Tokens for individual components/foundations are exported into the
tokens/maps
directory of the designated export directory as individual files while thetokens-map
file, which contains all available tokens, gets exported into the designated export directory root.
Improvements
- Added additional logging into the app's
next.config.js
file alongside improved path resolving for custom themes.
Maintenance
- Updated the
.npmignore
file to reflect latest.gitignore
changes made in the last release.
Commits
- Merge pull request #121 from Convertiv/release/0.9.1 d4262ad
- Updated the 0.9.1 changelog with additional improvement. c9b4da8
- Improvements to next config (additional logging + better custom theme path resolving). 6037871
- Merge pull request #120 from Convertiv/changelog/0.9.1 cf0de89
- Merge pull request #119 from Convertiv/feature/bring-back-app-footer 9c6225b
- Merge pull request #118 from Convertiv/feature/export-token-map 754d306
- Tokens map file now also contains foundation tokens. Improvements. 1cf916c
- 0.9.1 dfcdea8
- 0.9.1 changelog. d4d73f8
- Brought back missing footer component into the app. 316233f
- Initial support for token map(s) export. b0c2656
- Merge pull request #117 from Convertiv/maintenance/update-npmignore-to-reflect-gitignore-changes 770aef7
- Cleanup. 7d7cb19
- Update. bd84330
- Updated .npmignore to reflect latest changes to .gitignore file. 7dd0b89
Improving multiproject build system
[0.9.0] - 2023-11-10
This release focuses heavily on better support for environments on which multiple projects are being exported and built. All of the changes introduced in this release should provide better experience when working on such environments as well as resolve some of the issues which would occur when different projects would use same working directories.
Changes
- Handoff exports and builds are now updated to support export and build of multiple projects. Each respective output is now located in the subdirectory that matches the exported project id (e.g. /exports/{figmaProjectId}). This change prevents issues where one project would override handoff output of another project in environments where multiple Figma projects are being handled.
- Due to the change in the output directory structure, Bootstrap integration has been updated with a @exported alias which is set to point to export directory of the current project for which the integration is being built.
- Alongside existing support for customized app assets via the
public
directory, it’s now also possible to create apublic-{figmaProjectId}
directory which gets used only when the project with the respective Figma project id is being built. If thepublic
directory is used, assets located in that directory will be applied to all projects. - Handoff state file now always includes the Figma project id.
- Initial anonymization of the config file that gets loaded into the app to prevent secrets from being exposed on the client side.
- Improvements to path resolving for custom app theme(s).
- Restructure and improvements of the configuration:
poweredBy
option is now calledattribution
and has been moved intoapp
config key.next_base_path
option is now calledbase_path
and has been moved into theapp
config key.- Following options have also been moved into the
app
config key:theme
,title
,client
,google_tag_manager
,type_copy
,type_sort
,color_sort
,component_sort
logo
andfavicon
options have been removed (it’s still possible to use custom assets but their name must match the default names).
- Misc.
Bugfixes
- Resolved the wrong favicon path issue when app base path was set/used.
Migrate to a New Version
- Due to the restructure of the configuration, any local configuration (if exists) needs to be updated to match the new structure. Recommended way is to create a backup of the current local configuration(s) and to re-eject of the handoff configuration. Use the backup of the local configuration to update the up-to-date configuration ejected earlier. This process will ensure all the configuration options are defined correctly.
- Since the export and app output directory structures have been updated, any custom script that relies on the old output path(s) should be updated to support new structure that includes the project id subdirectory.
Changelog
- Merge pull request #116 from Convertiv/release/0.9.0 0d82777
- Merge pull request #115 from Convertiv/feature/improvements-for-multi-project-envs 7506eb8
- Formatting. cd1e9cb
- Updated variable name to reflect latest naming changes. a9e3f7d
- HANDOFF_BASE_PATH is now HANDOFF_APP_BASE_PATH. e7406d5
- HANDOFF_BASE_PATH is now HANDOFF_APP_BASE_PATH. 78c79aa
- Updated changelog for version 0.9.0 with updated new date. d1d38ee
- Updated the .gitignore file to ignore files produced by the test script. 92ef4f7
- Replaced next config tokens with real values. Using regex to update them when running project build. 71fac22
- Build 3da81dd
- Merge pull request #114 from Convertiv/release/0.9.0 d4f6376
- Merge pull request #112 from Convertiv/feature/improvements-for-multi-project-envs ff3aae3
- Merge pull request #113 from Convertiv/changelog/0.9.0 d6b45db
- Added 0.9.0 changelog. 175cec1
- Handoff serialization issue fix. f4ad2d7
- Fixed wrong favicon path. 1285d2e
- Misc improvements. Removed working path from handoff constructor. 52ab7ef
- Bugfix. 58e7264
- Configuration restructure and improvements. e069a8d
- Updated the output copy task to use project subfolder. b5c6188
- Fixed invalid path for handoff state file. 4c1778d
- Improvements to how handoff handles fetching and builds to better support multi project environments. Security improvements. Customization improvements. General improvements. 35dbb1e
Build client files fix
Bugfixes
- Fixed the issue build client file issue introduced in the 0.8.7 version.
Other
- Replaced the wrong date for the 0.8.7 release in the changelog with the correct one.
Commits
State, path resolving and build improvements
Improvements
- Improved the way in which the handoff state is being utilized to prevent concurrency issues from occurring.
- Improved path resolving across the project to prevent issues with wrong export directory being used from occurring.
- Added more options to easily adjust some of the build process steps.
- General quality improvements.
Commits
- Merge pull request #109 from Convertiv/release/0.8.7 c870168
- 0.8.7 e58ea42
- Merge pull request #108 from Convertiv/feature/improvements-to-state-tracking-path-resolving-and-build 80f3097
- Fixed issue where 'undefined' would be used as base path for images. 2e75acd
- Improvements to how the Handoff state is being utilized. Improvements to path resolving. Improvements to build app process. Extra configuration options. 33b054b
App and integration build fixes and improvements
Bugfixes
- Introduced cleanup prior to copying the integration files to the destination directory. This resolves the issue where deleted integration source files would still be present in the destination directory after running the integration build command.
- Resolved a issue introduced in one of the prior releases where the design token name (variable) rendered in the tooltip of the design token value wasn't being displayed correctly.
Commits
- Merge pull request #107 from Convertiv/release/0.8.6 6575d7b
- Merge pull request #104 from Convertiv/bugfix/clean-integration-dest-prior-to-build 18e5a30
- Merge pull request #105 from Convertiv/bugfix/fix-design-token-variable-value-in-tooltip 46a2b21
- Merge pull request #106 from Convertiv/changelog/0.8.6 ccd52a5
- Updated CLI version value. cad7f51
- Added 0.8.6 changelog 8dd0535
- Fixed a issue where token name (variable) wasn't being correctly displayed within individual tooltips for design token values. b17c150
- Added destination cleanup prior to distributing the integration files. b55ad4a
- Merge pull request #103 from Convertiv/maintenance/update-package-version-to-0.8.5 7f5bc5d