JIRA Plugin: Where to start - plugins

I was asked to create a simple JIRA plugin that combines Workflow + Custom Fields + Conditional Steps
I just started installing JIRA and finally managed to create a run a simple Hello World Plugin.
I am already confused with how huge this interface is, and cannot seem to be able to grasp the big picture
Could any of you send me to the right direction? An idea on what could include all these?

It might be a good idea to start with the scriptrunner plugin. This enables you to write custom groovy scripts for workflow conditions, validators, post-functions, listeners and many more.
The advantage is that the learning curve for simple groovy scripts is not as steep as for "real" plugins. That way you can accomodate with the jira api and then when you hit the point where you can't help yourself with groovy anymore switch over to normal plugin mechanics.

The Introduction to the Atlassian Plugin SDK is actually quite good.
The get your head around try to focus on the type(s) of plugin you want to have:
customfield - calculated or not?
workflow plugins - validators, conditions
Within each plugin, find out what information you need and then see where from the API you can get that information.

Script Runner is easier to learn and it does exactly what you are asking for. A SR script can become also a JIRA plugin if you want to install it in other instances (SR plugin must be available).
Learning Script Runner helps you to understand better how to develop JIRA plugins, in any case it's not time wasting because you can easily switch between native JIRA plugins and SR (SR uses JIRA components so the main logic is still the same, it just hides most of the annoying and repetitive stuff).
You can start with this template:
https://bitbucket.org/jamieechlin/sr-scripts-plugin/overview

Related

Hippo custom essential plugin creation

How do we add our own plugin. Lets say a new add-on or feature which can be installed and used. How do we develop that? I am sorry i am new to this.
Kindly help
Depending on your needs, I suggest you check out:
https://documentation.bloomreach.com/14/library/concepts/open-ui/introduction.html
You can also create various plugins more like the native functionality. Adding such to essentials is described here:
https://documentation.bloomreach.com/14/library/essentials-plugins/overview.html
That doesn't tell you how to create a plugin however. Essentials is just a helper application, the plugin can be various things from services, to configuration, to document types, to hst components... All of that requires some knowledge of the internals of the system. Look around the documentation, you can see how to create various things like workflows, perspectives, and more.
A plugin is no more than a collection of code and configuration bundled together. It could be a frontend thing or a backend thing. So I can't simply tell you how to create them. It can be quite difficult, depending on what you want, to create a plugin. Look into the code of some plugins, you will see that it is basically a java project with some configuration that can be found by the system on startup.
You might want to ask more specifically on what exactly you want to develop. That could lead to more specific advice. It can be daunting when you are starting to work with the cms. With experience it does start to make sense.

kibana-4.3 how to develop plugin

Where can I find a developer guide to kibana, that explain me how the system work and all the things i need to know for developing kibana plugin?
Or if someone could publish snippets of sample plugin.
I've started cloning statusPage plugin, but I don't want to do revers engineering to understand the platform.
On the website, the is no type of developer manual.
Thank you
You can refer to the following links to learn How to develop Kibana Plugins:-
http://logz.io/blog/kibana-visualizations/
https://www.timroes.de/2015/12/02/writing-kibana-4-plugins-basics/
The official answer from 6+ months ago seems to be "don't":
We're working to develop an external API but would caution you away
from making custom changes as things still move pretty fast and
internal APIs are likely to change even in patch versions.
Also, "there are no public plugin APIs right now" (8/2015)
Hard to find any information to date. I recommend you to look at the plugin generator released some days ago:
Generator Kibana Plugin Structure
There are two plugins I found where you can have a look at the code to understand the structure. The first is the Sense plugin, the second Timelion. Timelion matches more to the structure of the generator.
Sense Github
Timelion GitHub
I suggest understanding plugin structure and code for traffic plugin (https://github.com/sbeyn/kibana-plugin-traffic-sg) which would be one of the simplest plugins to understand and you could directly add it to your installed plugin folder in kibana and see it working.
Other than that I would also suggest you do read timroes blogs (https://www.timroes.de/2015/12/02/writing-kibana-4-plugins-basics/) for developing kibana plugins
and last I would also suggest using elasticsearch discussion forum for kibana related issues as well for quicker responses:
https://discuss.elastic.co

Automated testing developer environments

We use gradle as our build tool and use the idea plugin to be able to generate the project/module files. The process for a new developer on the project would look like this:
pull from source control.
run 'gradle idea'.
open idea and be able to develop without any further setup.
This all works nicely, but generally only gets exercised when a new developer joins or someone gets a new machine. I would really like to automate the testing of this more frequently in the same way we automate our unit/integration tests as part of our continuous integration process.
Does anyone know if this is possible and if there is any libraries for doing this kind of thing?
You can also substitue idea for eclipse as we have a similar process for those that prefer using eclipse.
The second step (with or without step one) is easy to smoke test (just execute the task as part of a CI build), the third one less so. However, if you are following best practices and regenerate IDEA files rather than committing them to source control, developers will likely perform both steps more or less regularly (e.g. every time a dependency changes).
As Peter noted, the real challenge is step #3. The first 2 ones are solved by your SCM plugin and gradle task. You could try automating the last task by doing something like this
identify the proper command line option, on your platform, that opens a specified intellij project from the command line
find a simple good enough scenario that could validate that the generated project is working as it should. E.g. make a clean then build. Make sure you can reproduce these steps using keyboard shortcuts only. Validation could be made by validating either produced artifacts or test result reports, etc
use an external library, like Robot, to program the starting of intellij and the running of your keyboards. Here's a simple example with Robot. Use a dynamic language with inbuilt console instead of pure Java for that, it will speed your scripting a lot...
Another idea would be to include a daemon plugin in intellij to pass back the commands from external CLI. Otherwise take contact with the intellij team, they may have something to ease your work here.
Notes:
beware of false negatives: any failure could be caused by external issues, like project instability. Try to make sure you only build from a validated working project...
beware of false positives: any assumption / unchecked result code could hide issues. Make sure you clean properly the workspace, installation, to have a repeatable state and standard scenario matching first use.
Final thoughts: while interesting from a theoretical angle, this automation exercise may not bring all the required results, i.e. the validation of the platform. Still it's an interesting learning experience and could serve as a material for a nice short talk, especially if you find out interesting stuff. Make it a beer challenger with your team when you have a few idle hours to try to see who can implement the fastest a working solution ;) Good luck!

How to add my own tool in sakai 2.9 like announcement?

I am new to sakai, i want to add my own tool in sakai source code like announcement,syllabus...etc That tool having some my own functionality for this what i have to do, how can i develop my own tool in sakai.
Thanks.
Use one of the archetypes to get you started, then customise it. When you are comfortable you can change the UI layer to be whatever you like.
https://confluence.sakaiproject.org/display/BOOT/Developer+Tools
If you are looking for a solid "base" tool shell to begin with tool development my recommendation would be to start here: "Sakai Wicket Maven Archetype". There are a few other very good archetypes available but are often outdated and may cause you some problems based on my experience. This has been the one I've had the most success with.
This uses Wicket but does not mean you have to use Wicket to develop further with it. Make sure to pull the 1.2 version as last check the binaries for the others were not available yet so replace -DarchetypeVersion=1.4.1 with -DarchetypeVersion=1.2 It will compile and deploy successfully as a tool "as-is" that you can modify as needed. It also allows you to code in Java to directly access the sakai API and pull from its database or even add your own tables. I've successfully used it with NetBeans 8.0.1 and MySQL 5.6 under Windows 7 with Maven 3.2.3 and Sakai 10.1.
The code is well-documented and is no-frills but with enough varied functional use examples to allow you to do "almost" anything you want. The wicket manual is 600+ pages but in my experience you should be able to accomplish a lot just by looking at the code in the archetype.

Is there a Netbeans plugin or issue tracker that provides connectivity to Fogbugz?

I would like to be able to create FogBugz cases directly straight from the editor in NetBeans. Specifically, I would like to be able to look at a JUnit run in the IDE, examine the failures and create cases directly using the information that is right in front of me (rather than cutting and pasting into a web browser, etc).
I see that NetBeans 6.5.1 ships with Bugzilla available by default and JIRA connectivity in some sort of beta form. Is there an equivalent FogBugz issue tracker?
PS: I am aware of the new plugin architecture of FogBugz 7. However, I have a realistic appreciation of the time that I would be able to commit to creating my own plugin for either NetBeans and / or FogBugz and I suspect that I would be able to make just enough of a partial solution to make my life worse rather than better.
It appears you may need to write one yourself, as they have plugins for Eclipse and Visual Studio, but not Netbeans.
http://www.fogcreek.com/fogbugz/blog/post/Eclipse-Plugin-For-FogBugz.aspx
I am not aware of such plugin. You're right that it is not trivial effort to write full-featured connector, but getting basic one is not that hard ... especially if you're already familiar with NetBeans plugin architecture. If you decide to go for it, take a look at FogBugz API instead of new FogBugz plugins. FogBugz API is used to talk to remote FogBugz repositories.