How do I deliver a new build system in SublimeText3? - sublimetext2

I have built a sublimetext3 plugin. Now I have added a build tool. To use this build tool, the user has to go to Tools->Build System->New Build System.
I consider this an extra hassle for the user. Is there a way to package it and deliver it along with the plugin?

Simply add the .sublime-build file (and its dependencies like shell scripts) to the files in your ST package. Unless there's a conflict with another build system, the user can then build using the keyboard shortcut.
Build Systems

Related

How to build ISPAC using VSTS

It appears that building ISPAC using MSBuild is near impossible. I'm hoping I can find a way to create ISPACs in the VSTS build processes, but it doesnt appear to be straight forward.
there is a VSTS task by ToxicGlobe
https://github.com/ToxicGlobe/VSTS-SSIS-Extension
However support seems minimum, and there isnt alot of traction.
how does the real world create ISPACs in a common CI process?
There isn’t such build-in task available in VSTS, but you can refer to the source code of VSTS-SSIS-Extension to custom the build/release task to meet your requirement through VSTS extension: Add a build task
I use this command:
devenv SolutionName.sln /Rebuild
In the Bin folder of the project, you are going to find the .ispac file, Remember to include the path of devenv.exe in the System Variable "Path"

How can I use multiple JetBrains IDEs on same project without annoying pop-ups when switching between them?

I have a project that uses both PHP and Python, and I would like to use JetBrains IDEs (in this case PhpStorm and PyCharm) to work with both languages.
However when I open the project using both IDEs concurrently I get a pop up whenever I switch from one to the other, as the newly focused IDE detects metadata that has been written to the project directory by the other IDE. I imagine this would be a problem between other combinations of JetBrains IDEs as well (hence the use of the generic jetbrains tag).
I have a work around (I will post in an answer for others to view), but it is somewhat awkward to set up, and I may well be working with other projects that use the same combination of languages.
Is there an easier solution?
My current workaround:
Create a new directory separate to the main project directory - using the language specific IDE for the second-most used language in the project, open the new directory as a project, and using the options in Settings > Project > Project Structure, add the main project directory as a separate content root.
Whenever needing to work on the parts of the project written in the secondary language, you can now open the new directory instead; this keeps metadata for both IDEs separate.
A workaround which allows for two IDE's to share the same directory without IDE settings conflicts.
JetBrains software allows you to store project settings as either a file based project (*.iml), or a directory based project (.idea).
To choose file or directory based projects, change the file storage type when opening a project.
Note: Directory based projects are preferred to file based projects, as they allow for versioning of shared settings. Support for file based projects is deprecated and may be removed.

Package dependencies in Android apk files

I am performing Android app reverse engineering (decompilation and further analysis). I wish to analyse the package dependencies between different packages inside the same apk file. Is there any tool which does this? Else, how can I deduce package dependency in apk files?
I wish to analyse the package dependencies between different packages inside the same apk file. Please let me know if there is any tool which does this
A tool called Dexter is available to find out all the packages present in an apk. Also, if there is a program dependency among any 2 packages, Dexter show it with an edge. It could be noted that the edges do not have any weight to indicate the strength of the dependency.
The only dependencies that I have run into with apk files are with the framework from the device. If you are dealing with a standard app available from the Play, then it generally contains everything that it needs inside its own package.
Some of the custom builds like Amazon Kindle Fire, Barns & Noble Nook, etc have built custom launchers and other services which then offer other functions through their frameworks.
The framework-res.apk is typically stored in the /system/framework location. You can extract that from your device and place it in your apktool folder of your %userprofile%/~. Apktool (I am assuming that is one of the tools you are using) will then reference it when it does the work.

How to manage directory structure of a project that uses third-party open source library?

I develope an open source application. Directory structure of my project is:
app
|-include
|-src
|-doc
|-build
|-lib
|-bin
I want to use another open source library. There are some choises:
Add third-party library source code to include and src directory.
Compile third-party library and add to include and lib directory.
Create a third_party directory and add complete source code of third-party library to it.
Create a third_party directory and add compiled of third-party library to it.
What is the best choise? Is there any better way to manage directory structure of a project that uses third-party open source library?
If you are ever planning to upgrade the third-party library, it will be much more convenient to keep it in a specific subdirectory. You don't have to have a specific "third-party" directory; you could name it after the library.
Think about what goes in version control.
If you are copying the third-party library into your repository, then you SHOULD NOT include compiled products (using source instead), as they are typically impossible to diff and platform-specific.
If the user is going to obtain the library separately and add it to your project's tree, then using a subdirectory will make it easier to unarchive and guarantee there won't be any name conflicts; source versus binary should be left up to the user.
At the other extreme, if you are using a reference your VCS manages (such as SVN externals or Git submodules), you will probably have to include the source in a subdirectory.
One concern you should bear in mind, depending on your situation, is whether you will someday have to account for those third party open source components and compliance with the licenses etc.. It can be easier to manage this kind of thing if you keep the third party files in their own directories. Having the unmodified source code and licenses handy and a link back to where you got the source code and could get it again would be useful as well. I've worked at companies where there were license compliance verification processes that were easier to get through if the third party sources were segregated in this fashion.
https://softwareengineering.stackexchange.com/questions/234511/what-is-the-best-practice-for-arranging-third-party-library-licenses-paperwork is relevant on this.

How to use lcov test coverage tool with Hudson continuous integration?

In my environment developers use lcov from command line when working with source code's module tests.
I would like to know if there is a way to easily add reports from lcov to Hudson's builds? I would ease and automate the whole procedure of gathering test source code coverage.
If you are looking to publish the generated HTML reports along with your job/builds, have a look at the htmlpublisher plugin: http://wiki.hudson-ci.org/display/HUDSON/HTML+Publisher+Plugin
This allows you to specify multiple html directories and index files to be made accessible from the job or build page.
Have a look at the xUnit Plugin. I found the info in this thread. It has more information for using Hudson to build cpp projects.