Changes in Iguana 6 are focused on improved project management and better project structure. Source control has been completely revised, and now uses Git repositories. Version control has improved workflow and visibility, and it is easy to rollout code changes across many channels. Git repositories make it simple to share code between local or global teams, and move channels between development, testing and production servers. Local modules can be used for sandboxing, and for private code that you don’t want to share with other channels. And our builtin repositories make it easy to import tutorial and sample code.
- The Version Control System has been given a complete overhaul
- Official repositories are shared via Settings > Import Channels
- Projects can now include local dependencies
- The Sample Data Editor has been greatly improved
- Most functions now accept node trees (userdata objects) as string parameters
- An installer is now available for Mac OS X
- The iconv builtin module has been added (standard Linux iconv conversions)
- Added database support for MariaDB
- OpenSSL has been upgraded to 1.0.1p
- Several other new features
- Several other bug fixes, and behavior changes
- To see the complete list of changes, feel free to browse the Iguana change log
New Version Control System using Git Repositories [top]
Translator Version control has been completely overhauled and now uses Git repositories instead of Fossil. Using version control is easy, you simply use a Commit to save your work at any time, and Revert to rollback to any previously saved Commit. You can can also view differences between any Commit and your current code.
Using Git has many advantages: It allows you to import and export channels from local and remote repositories, it makes it quick and easy to transfer channel code between Iguana instances, in fact you can easily share code with anyone anywhere in the world.
Official Tutorial and Sample repositories [top]
We have leveraged the new version control to supply official repositories. It is our goal to use repositories to supply reusable modules, channels and sample code for you to import into your own projects. This is going to make things much more convenient than copying and pasting from our wiki code repository. Currently we have included the Tutorial and Sample repositories, in the future will be we will be adding more repositories and enhancing repository content.
Because our official repositories are stored remotely by iNTERFACEWARE we can add new content or even new repositories at any time. This means the reusable code base will automagically improve, without you needing to upgrade to a new version of iguana.
Projects can include local dependencies [top]
Projects can now include local files, these files are local to the component they are created in. For example, If you create a local
foo.luain a From Translator and then you create
foo.luain the Filter the same channel, they are two independent files. Local files can also use the same name as a shared file without conflicting. Local modules are included in Git version control just like any other project file.
This is a great feature for independently testing experimental changes to shared modules. Simply duplicate a shared module locally and modify it to your hearts content. Then when you are ready you can copy the changes to the shared module or discard them if they didn’t work out. Its also useful for trying out ideas before sharing a new module.
The Sample Data Editor has been given a complete overhaul [top]
We have created a new and improved sample data editor, which gives you much finer control over the contents of sample data right down to the byte level.
Most functions now accept node trees (userdata objects) as string parameters [top]
In simple terms this means that most functions will automatically convert node trees into strings for you. This simplifies your code by removing the extra step of converting trees to strings.
There may still be times when you prefer to convert manually, particularly for leaf nodes. See String conversion S() or nodeValue()? for a discussion of conversion methods.
You must be logged in to reply to this topic.