Go Workspaces

0 views
Skip to first unread message

Aila Gilb

unread,
Aug 5, 2024, 4:46:16 AM8/5/24
to aptanbiztga
Thisutility works very well to transfer between organizations/workspaces, but note that it only moves projects. I had all my personal tasks in My Tasks inside the Personal Projects workspace, and I wanted to move them to a new personal workspace. I had to put all the tasks in a project first, and then move the project to the new workspace.

The tool has been created long time before the existence of Boards in Asana, I guess the tool needs to be updated.

Has anyone communicated this to the programmer of the tool?

I have not found another tool so far.


You can also highlight all tasks in a project, right-click and copy.

Then switch to the new workspace and open a project.

Click into the task field and right-click Paste.

This will copy over all tasks.


This pattern is often called monorepo when used in conjunction with a repository. Workspaces were initially popularized by projects like Lerna, but Yarn was the first package manager to provide native support for them - support which never stopped improving over years as we build more features around them.


When you need to publish multiple packages and want to avoid your contributors having to open PRs on many separate repositories whenever they want to make a change. This is for example the case for Jest.


There's been a significant amount of discussions about whether monorepos are good or bad, with decent arguments on both side. Our team worked with monorepos for years at this point, and with the tooling Yarn provides, the value has always outweighed the cons by a large margin. If you need to create another package for your project, consider whether grouping them together makes sense.


You don't need to split your code in many workspaces for them to become useful. For instance, the Clipanion repository uses only two workspaces, one for the library and one for its website. This patterns avoids mixing dependencies while also making it easy to author PRs that affect both the code and the documentation.


To declare a workspace, all you have to do is add a workspaces array to the root package.json file, and list relative glob patterns pointing to your workspaces' folders. In the following example, all subdirectories in the packages folder will become workspaces.


Constraints are to monorepos what Eslint is to your source code. They let you declare rules that must apply to specific workspaces in your project. For example, you can use constraints to enforce that all dependencies in your project are synchronized, to prevent some dependencies from being used, or to enforce that some fields such as license or engines.node are properly set everywhere.


Packages from monorepos often need to depend on each other - for example when you have an app package depending on a separate library. Yarn makes it very easy thanks to the special workspace: protocol, which lets you instruct Yarn to resolve the dependency using the workspace of the same name in the project. For example:


A common concern when discovering workspaces is how you need to install all of their dependencies whenever you wish to work on a single one of them. Yarn provides a solution via yarn workspaces focus.


This command takes a list of workspaces, extend the list to include transitive dependencies, and exclude everything else from the install. For example, the following would let you install only the dependencies required for your main app to be built and deployed:


Scripts defined in the scripts field from the package.json files can be run using yarn run name, but only if you run the command from within the workspaces that declare them. That is, unless they are global scripts.


Global scripts are characterized by at least one colon (:) in the script name. They can be run from anywhere within the project, as long as there are no duplicates (if two workspaces define scripts with the same names, they won't be upgraded into global scripts).


Scripts from multiple workspaces can be run in parallel if they share the same name, by using yarn workspaces foreach. The following example shows you how to publish all packages in your project in parallel, but respecting topological order (so that a workspace only gets published once all other workspaces it depends on did):


The --all flag will run the provided command on every workspace in the project, but it can be tweaked. In this example we use the --since flag to instead only select workspaces that were modified in the current branch compared to the main branch:


Similarly, the --from pattern flag will instead select all workspaces matching the provided glob pattern. As for all other Yarn commands, this flag will be applied to both workspace names and paths relative to the current working directory. For example, this command will run the build script on the current workspace and all other workspaces it depends on:


I have a new colleague that I want to have access to all of my workspaces. Is there a way to share all of my workspaces at one time without having to individually share each workspace? I have over 200 workspaces.


Another option if this is something you have to do often: You could create a group in Smartsheet, add all the people who need access to your workspaces to that group, and then share all of the workspaces with that Group. Any time you have a new person who needs to be shared to your workspaces, you add them to the group and they'll get access to anything that the group has access to.


I opened a support ticket, but I can't close this pop-up no matter what I click or what browser I use and I'm wondering if anyone has any insight. I'm LOCKED OUT of my work because of some stupid UI refresh alert. ?


We now have 3 workspaces with experiments, one for email, CRO and socials. Now we want to have an overarching workspace where all experiments come together so that we have one large database. For example, we can collect all experiments from one campaign.


Now I succeed in syncing a view, but it then becomes a separate tab in the overarching workspace. Is it possible to import all data into one table. Or should these be 3 tables and is it possible to merge all this data into one table so that we have one library.


Multi-source syncing is natively possible within Airtable, but it does require for your workspace to be on the business plan or above to be able to access this feature. You can read more about the feature here.


I know that these plans can be quite costly for small organizations. You might be able to merge three synced tables to one table with a custom script (available on team plan or above) or automations. However I wouldn't recommend an automation as it will your run limits very quickly if you are on the free plan, and potentially the team plan depending on how many experiment records you sync in and how often they change.


Thank you for your answer. I think I managed to get data from multiple workspaces into one table from another workspace. I am now facing another challenge. Now I want to link the data from a table in the main workspace to the synced table.


I was wondering if I could have a sheet be located in multiple workspaces simultaneously. For example If I wanted to have individual workspaces for each project I am working on, but also have separate workspaces that would allow me to see overviews for ALL projects, all pulling from the same sheets.


There isn't currently a way for a sheet to exist in multiple workspaces. With that being said, you might consider creating a report that pulls data in from your sheets into one location: -creating-reports


A Visual Studio Code workspace is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace. However, depending on your development workflow, you can include more than one folder, using an advanced configuration called Multi-root workspaces.


You may see the terms "folder" and "workspace" used interchangeably in VS Code documentation, issues, and community discussions. Think of a workspace as the root of a project that has extra VS Code knowledge and capabilities.


Note: It is also possible to open VS Code without a workspace. For example, when you open a new VS Code window by selecting a file from your platform's File menu, you will not be inside a workspace. In this mode, some of VS Code's capabilities are reduced but you can still open text files and edit them.


Alternatively, if you launch VS Code from a terminal, you can pass the path to a folder as the first argument to the code command for opening. For example, use the following command to open the current folder (.) with VS Code:


You don't have to do anything for a folder to become a VS Code workspace other than open the folder with VS Code. Once you open a folder, VS Code automatically keeps track of configuration, such as your open files or editor layout. When you reopen that folder in VS Code, the editor will be as you left it previously.


You can also add other folder-specific configurations, such as workspace-specific settings (versus global user settings), task definitions, and debugging launch files (see below in the workspace settings section).


Multi-root workspaces are an advanced capability of VS Code that allows you to configure multiple distinct folders to be part of the same workspace. Instead of opening a folder as workspace, you open a .code-workspace JSON file that lists all folders of the workspace. For example:


Note: The visual difference of having a folder opened versus opening a .code-workspace file can be subtle. To give you a hint that a .code-workspace file has been opened, some areas of the user interface (for example, the root of the File Explorer) show an extra (Workspace) suffix next to the name.

3a8082e126
Reply all
Reply to author
Forward
0 new messages