<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>idea Change TBX format to a simple ZIP format in ArcGIS Pro Ideas</title>
    <link>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idi-p/929977</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;TBX is a proprietary Microsoft OLE2.0 (or as they later named it Compound File Binary File Format). But it is a legacy now; Microsoft had changed from .doc to .docx and .xls to .xslx. These old formats (OLE2.0 based) are legacy now for more than 10 years, while docx and xlsx are a set of XML files compressed into a zip file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Link: &lt;A class="link-titled" href="https://en.wikipedia.org/wiki/List_of_Microsoft_Office_filename_extensions" title="https://en.wikipedia.org/wiki/List_of_Microsoft_Office_filename_extensions"&gt;List of Microsoft Office filename extensions - Wikipedia&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;For me, representing developers' viewpoint, the legacy is not the main issue.&lt;BR /&gt;&lt;BR /&gt;The biggest issue is that TBX-s is binary format that can't be efficiently used in a development as it exists today. When developer teams are developing different features on different source control (git, tfs to name a few) branches at some point we do merges from several branches into one for the next release the issues with "shared" TBX-es begin. If branch1 got a new tool in common.tbx and branch2 got another one then merge is impossible as TBX is binary format. So we need to solve such conflicts manually. OK, cooperation between the teams is not a bad thing, but...&lt;BR /&gt;&lt;BR /&gt;We can't track differences between "spring release tbx" and "autumn release tbx". We can't see textual diff-s which is essential for finding such issues as what changes could break this version.&lt;BR /&gt;&lt;BR /&gt;So my suggestion is to change to zip with open specification what it should consist: manifest, content, python scripts (and optionally CLSIDS of COM classes, but that's ArcMap world and I do not expect this idea will happen here).&lt;BR /&gt;&lt;BR /&gt;The main wish is to have a set of text files that can be (essential is development with version control) compared, merged, conflicts resolved in text editors. The build step would be a very simple one: zip it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Nov 2019 20:15:42 GMT</pubDate>
    <dc:creator>RemigijusPankevičius</dc:creator>
    <dc:date>2019-11-18T20:15:42Z</dc:date>
    <item>
      <title>Change TBX format to a simple ZIP format</title>
      <link>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idi-p/929977</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;TBX is a proprietary Microsoft OLE2.0 (or as they later named it Compound File Binary File Format). But it is a legacy now; Microsoft had changed from .doc to .docx and .xls to .xslx. These old formats (OLE2.0 based) are legacy now for more than 10 years, while docx and xlsx are a set of XML files compressed into a zip file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Link: &lt;A class="link-titled" href="https://en.wikipedia.org/wiki/List_of_Microsoft_Office_filename_extensions" title="https://en.wikipedia.org/wiki/List_of_Microsoft_Office_filename_extensions"&gt;List of Microsoft Office filename extensions - Wikipedia&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;For me, representing developers' viewpoint, the legacy is not the main issue.&lt;BR /&gt;&lt;BR /&gt;The biggest issue is that TBX-s is binary format that can't be efficiently used in a development as it exists today. When developer teams are developing different features on different source control (git, tfs to name a few) branches at some point we do merges from several branches into one for the next release the issues with "shared" TBX-es begin. If branch1 got a new tool in common.tbx and branch2 got another one then merge is impossible as TBX is binary format. So we need to solve such conflicts manually. OK, cooperation between the teams is not a bad thing, but...&lt;BR /&gt;&lt;BR /&gt;We can't track differences between "spring release tbx" and "autumn release tbx". We can't see textual diff-s which is essential for finding such issues as what changes could break this version.&lt;BR /&gt;&lt;BR /&gt;So my suggestion is to change to zip with open specification what it should consist: manifest, content, python scripts (and optionally CLSIDS of COM classes, but that's ArcMap world and I do not expect this idea will happen here).&lt;BR /&gt;&lt;BR /&gt;The main wish is to have a set of text files that can be (essential is development with version control) compared, merged, conflicts resolved in text editors. The build step would be a very simple one: zip it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Nov 2019 20:15:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idi-p/929977</guid>
      <dc:creator>RemigijusPankevičius</dc:creator>
      <dc:date>2019-11-18T20:15:42Z</dc:date>
    </item>
    <item>
      <title>Re: Change TBX format to a simple ZIP format</title>
      <link>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idc-p/929978#M2598</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello, I am a lead from the geoprocessing development team and have some information to share.&lt;/P&gt;&lt;P&gt;We are developing a new open-format for toolboxes, based on a folder structure and json files to contain the properties of the toolbox and it's tools and their parameters. This open format will support better source code management, will produce less corruption/invalid binary file problems, and better support backward compatibility across a variety of releases. The story will start to come together in the near-mid term (likely around 2.7).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, at this time, we can accomplish a lot of what you described specifically for source control by writing your code and toolbox as Python toolboxes.&amp;nbsp;&lt;A class="link-titled" href="https://pro.arcgis.com/en/pro-app/arcpy/geoprocessing_and_python/creating-a-new-python-toolbox.htm" title="https://pro.arcgis.com/en/pro-app/arcpy/geoprocessing_and_python/creating-a-new-python-toolbox.htm"&gt;Creating a new Python toolbox—Geoprocessing and Python | ArcGIS Desktop&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is a single Python file (text file) that contains toolbox and tool definitions as classes. Those classes can come from other modules as well. Python toolboxes are a great capability for developers who want programmatic control of the toolbox and organization of the code using basic Python structures. I hope you can consider this approach. We even have an old utility for auto-generating the PYT based on your TBX:&amp;nbsp;&lt;A class="link-titled" href="https://github.com/Esri/tbx-pyt-translator" title="https://github.com/Esri/tbx-pyt-translator"&gt;GitHub - Esri/tbx-pyt-translator: Utility for converting a Geoprocessing TBX file to a pure-Python PYT file in ArcGIS 10…&lt;/A&gt;&amp;nbsp;.&lt;/P&gt;&lt;P&gt;Lastly, you can explore how some Esri system-tool developers are using Python toolboxes by exploring the PYTs in your ArcGIS Pro installation.&amp;nbsp;C:\Program Files\ArcGIS\Pro\Resources\ArcToolBox\Toolboxes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Drew&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Dec 2019 22:31:31 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idc-p/929978#M2598</guid>
      <dc:creator>DrewFlater</dc:creator>
      <dc:date>2019-12-18T22:31:31Z</dc:date>
    </item>
    <item>
      <title>Re: Change TBX format to a simple ZIP format</title>
      <link>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idc-p/929979#M2599</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for sharing it, Drew.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thumbs up for switching from proprietary binaries to textuality (term by Eric S. Raymond in his book "The Art of Unix Programming").&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've got some inspiration to fill the same idea for changing service definition file (.sd) format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've tried Python Toolboxes and quickly started to search for a way how to escape that "quick hack format" rather than a good design decision. It could be better to name Python toolboxes like *.toolbox.py for IDEs to recognize it's a Python file. Also there are issues in using libraries without copy pasting them into .pyt files what is horrible practice.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I found a way how to split that single text file (.pyt) into separate plain Python files (.py). Then .pyt contains only minimal boilerplate code for the toolbox; actual tools are implemented in separate Python files. A "no-op" inheritance is used to put 2 tools in .pyt file. To support refresh-and-continue development import with reload is used.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; arcpy
&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; AttachmentsTool &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; attach
&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; HyperlinksTool &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; hyperlink

&lt;SPAN class="comment token"&gt;# Explicitly reload modules to recompile (there are issues with that when refreshing .pyt toolbox in ArcMap)&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; imp
imp&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;reload&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;attach&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
imp&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;reload&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;hyperlink&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;class&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;Toolbox&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;object&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;def&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;__init__&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;self&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"""Define the toolbox (the name of the toolbox is the name of the .pyt file)."""&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;label &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"Toolbox"&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;alias &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;""&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;# List of tool classes associated with this toolbox&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;tools &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;AttachTool&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; HyperlinkTool&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;class&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;AttachTool&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;attach&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;AttachTool&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;pass&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;class&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;HyperlinkTool&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;hyperlink&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;HyperlinkTool&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;pass&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 11:52:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idc-p/929979#M2599</guid>
      <dc:creator>RemigijusPankevičius</dc:creator>
      <dc:date>2021-12-12T11:52:20Z</dc:date>
    </item>
    <item>
      <title>Re: Change TBX format to a simple ZIP format</title>
      <link>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idc-p/929980#M2600</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Although the text representation is welcomed.&amp;nbsp; The dialog interface for creating custom toolboxes allows for screen grabs to documenting visually, the layout and structure of the toolbox.&amp;nbsp; Perhaps the visual and text combination that existed when the Dialog Designer was around many years ago would be a nice pairing.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Dec 2019 01:43:01 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idc-p/929980#M2600</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2019-12-23T01:43:01Z</dc:date>
    </item>
    <item>
      <title>Re: Change TBX format to a simple ZIP format</title>
      <link>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idc-p/929981#M2601</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There is a dialog for documenting tools in toolbox in ArcMap:&lt;BR /&gt;&lt;A class="link-titled" href="https://desktop.arcgis.com/en/arcmap/10.3/analyze/creating-tools/a-quick-tour-of-documenting-tools-and-toolboxes.htm" title="https://desktop.arcgis.com/en/arcmap/10.3/analyze/creating-tools/a-quick-tour-of-documenting-tools-and-toolboxes.htm"&gt;A quick tour of documenting tools and toolboxes—Help | ArcGIS for Desktop&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Dec 2019 09:40:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idc-p/929981#M2601</guid>
      <dc:creator>RemigijusPankevičius</dc:creator>
      <dc:date>2019-12-23T09:40:40Z</dc:date>
    </item>
    <item>
      <title>Re: Change TBX format to a simple ZIP format</title>
      <link>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idc-p/929982#M2602</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That I know about&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Dec 2019 11:21:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idc-p/929982#M2602</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2019-12-23T11:21:09Z</dc:date>
    </item>
    <item>
      <title>Re: Change TBX format to a simple ZIP format - Status changed to: Implemented</title>
      <link>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idc-p/1152326#M18956</link>
      <description>&lt;P&gt;We're marking this implemented with the release of the .atbx format in ArcGIS Pro 2.9.&amp;nbsp;&lt;/P&gt;&lt;P&gt;See&amp;nbsp;&lt;A href="https://pro.arcgis.com/en/pro-app/2.9/get-started/whats-new-in-arcgis-pro.htm" target="_blank" rel="nofollow noopener noreferrer"&gt;What's new in ArcGIS Pro 2.9&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DrewFlater_0-1646858000729.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/35985iC9D99889553FF981/image-size/medium?v=v2&amp;amp;px=400" role="button" title="DrewFlater_0-1646858000729.png" alt="DrewFlater_0-1646858000729.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 09 Mar 2022 20:33:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-ideas/change-tbx-format-to-a-simple-zip-format/idc-p/1152326#M18956</guid>
      <dc:creator>DrewFlater</dc:creator>
      <dc:date>2022-03-09T20:33:27Z</dc:date>
    </item>
  </channel>
</rss>

