Ultime novità su Portfolio

Anno nuovo, novità sempre in pista

In questo post andremo ad esaminare le ultime novità si JIRA Portfolio.

Compare target and actual delivery dates

Viene data la possibilità di fissare delle Target Start Date e Target End Date, rappresentate come delle barre azzurre, come si può vedere nella figura sottostante,

Questa caratteristica può essere di aiuto:

  • quando hai delle pianificazioni da fare ma non si dispone di tutti i dettagli e si vuole avere almeno una idea di come impatta+
  • per dare un punto di riferimento e capire dove e quando allocare delle risorse per un determinato progetto.

Compare multiple scenarios

Con questa nuova funzionalità viene data la possibilità di poter generare degli scenari possibili e di poterli confrontare, oltre che marcare con opportune etichette e avere così diversi quadroi della situazione, com emostrato dalla seguyente immagine.

Compare story point estimates

Con Portfolio è possibile realizzare una stima a lungo termine della Velocity del gruppo di lavoro. E’ possibile dare una prima stima iniziale e poi eseguire tutti gli aggiustamenti del caso avendo sempre sotto controllo la stima iniziale. Questo aiuta sicuramente nella messa in opera di un gruppo di lavoro.

Conclusioni

JIRA Portfolio si conferma sempre una fonte di soprese e di innovazioni. Rimaniamo in attesa delle prossime novità

Reference

Maggiori informaizoni sono presenti nel post del blog Atlassian.

 




Import/export di Template Confluence – Test

Prova addon

In questo post andremlo a visionare la prova dell’addon di importazione/esportazione dei template di Confluence, che abbiamo presentato qualche giorno fa.

Installazione

Partiamo come sempre dalla installazione dell’addon. Andiamo a cercare il nostro addon dalla sezione di amministrazione, come mostrato dalla seguente figura:

La prima cosa che notiamo è che l’addon è gratuito (al momento in cui viene redatto il post). Procediamo quindi con l’installazione, selezionando il tasto Install.

Viene prima eseguito in automatico il download dell’addon, senza che dobbiamo preoccuparci che sia la versione corretta, dato che le procedure stesse si preoccupano di eseguire questo controllo 🙂 ….

… terminato il download, si procede con la installazione vera e propria. ….

… che termina con il messaggio di addon pronto all’uso. Questo addon è gratuito e non abbiamo bisogno di ulteriori fasi. Selezionando Close veniamo rediretti alla pagina seguente:

che ci permette di accedere alla pagina di gestione/configurazione dell’addon

Configurazione

Selezionando manage veniamo reditretti alla seguente pagina:

che ci dice una cosa importante: Non abbiamo una configurazione da gestire 😀

TEST TEST TEST TEST TEST

Senza indugio andiamo a testare questo addon e vediamo che cosa ci consente di fare :-). Come prima cosa ci posizioniamo nella gestione dei temnplate del nostro space di esempio:

Creando dei template id test, con dei nomi di fantasia molto importanti (:-P) vediamo che ci viene proposto un nuovo menù che comprende anche la funzioen export. Se andiamo a vedere la visualizzazione pre-installazione dell’addon:

Se andiamo a testare questa nuova funzionalità, quello che otteniamo è un file XML, che presenta il contenuto del template, come possiamo vedere dalla seguente immagine:

Quello che vien efatto è di estrarre il codice che compone il nostro template e poter così creare la nostra libreria di template 🙂

Conclusioni

Abbiamo un addon che ci semplifica un bel po la vita. Riusciamo ad estrarre il contenuto delle pagine template, senza dover andare a leggere il database e senza dover fare troppi sforzi. In questo modo possiamo eseguire questa operazione senza alcuna fatica.

Reference

Maggiori informazioni sono presenti nella pagina del marketplace della Atlassian.




Anomalia sulla procedura di caricamento di Workflow

Anomalia sulla procedura di caricamento Workflow

In questo post segnaliamo una anomalia che si potrebbe presentare in fase di caricamento di un Workflow, come indicato nella procedura Importing from local instance, e per alcune versioni datate di JIRA CORE, potrebbe essere un attimo …. fastidioso.

Ringraziamento

Rigrazio Francesco Borchetta per la segnalazione.

Nel dettaglio

Questa anomalia si presenta fino alla versione 7.1.7 server. Quando si esegue l’importazione di un Workflow, seguendo la procedura da manuale, rischiamo di non riuscire. Se andiamo a verificare il log, questo è il risultato:

24-May-2016 18:14:56.057 WARNING [http-nio-8717-exec-25] org.apache.catalina.connector.Response.sendRedirect Failed to redirect to [summary?atl_token=BC5X-3E6C-B9U6-B82F|e6b3dc7ef6ba6448e3e3e5827fa223dfe7952a0f|lin]
 java.lang.IllegalArgumentException: Illegal character in query at index 37: summary?atl_token=BC5X-3E6C-B9U6-B82F|e6b3dc7ef6ba6448e3e3e5827fa223dfe7952a0f|lin
	at java.net.URI.create(URI.java:852)
	at org.apache.catalina.connector.Response.sendRedirect(Response.java:1280)
	at org.apache.catalina.connector.Response.sendRedirect(Response.java:1252)
	at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:500)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at com.atlassian.gzipfilter.SelectingResponseWrapper.sendRedirect(SelectingResponseWrapper.java:93)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at com.opensymphony.module.sitemesh.filter.PageResponseWrapper.sendRedirect(PageResponseWrapper.java:212)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpSer

Workaround

Per fortuna, abbiamo a disposizione una workaround, disponibile nella stessa segnalazione della anomalia, che ci permete di poter risolvere il problema:

Workaround

  1. Procedere con la normale procedura di importazione di un Workflow
  2. Una volta raggiunto la URL http://<Base URL>/plugins/servlet/wfshare-import/map-statuses, seleziona tutti gli stati e quindi dare un click su Next (a questo punto siamo rediretti ad una pagina bianca, e l’errore è stato geenrato )
  3. Aprire l’ultimo stderr logs (Windows) o catalina.out logs (Linux) della propria istanza (localizzata su <JIRA Install>/logs directory) e cercare il seguente errore:
  4. 31-May-2016 18:14:49.109 WARNING [http-nio-7171-exec-17] org.apache.catalina.connector.Response.sendRedirect Failed to redirect to [summary?atl_token=B0KP-OKMI-GE40-K8NA|7412a2a4cd5c29b28d9247a0a93dbc9056c6a85b|lin]
     java.lang.IllegalArgumentException: Illegal character in query at index 37: summary?atl_token=B0KP-OKMI-GE40-K8NA|7412a2a4cd5c29b28d9247a0a93dbc9056c6a85b|lin
    	at java.net.URI.create(URI.java:852)
    	...
    Caused by: java.net.URISyntaxException: Illegal character in query at index 37: summary?atl_token=B0KP-OKMI-GE40-K8NA|7412a2a4cd5c29b28d9247a0a93dbc9056c6a85b|lin
    	at java.net.URI$Parser.fail(URI.java:2848)
    	...
    
  5. Copia la stringa da summary in avanti. Riprendendo l’esempio del punto precedente, copia summary?atl_token=B0KP-OKMI-GE40-K8NA|7412a2a4cd5c29b28d9247a0a93dbc9056c6a85b|lin
  6. Attacca questa stringa alla fine della URL che viene proposta quando vien evisualizzata la pagina bianca (ad esempio: http://<Base URL>/plugins/servlet/wfshare-import/map-statuses). La URL finale dovrebbe risultare:
    http://<Base URL>/plugins/servlet/wfshare-import/map-statuses/summary?atl_token=B0KP-OKMI-GE40-K8NA|7412a2a4cd5c29b28d9247a0a93dbc9056c6a85b|lin
  7. Incolla questa nuova URL nel browser e procedi. Questo dovrebbe far arrivare al passo siccessivo.

Conclusioni

Abbiamo questa Workaround disponibile per gestire l’errore, qualora abbiamo a disposizione una versione soggetta al problema e, per varie ragioni, non possiamo eseguire un aggiornamento di versione.




Bitbucket – Proseguiamo la nostra esplorazione

Il viaggio continua

In questo post proseguiamo quanto iniziato dai seguenti post, dedicati a Bitbucket, ovvero:

Proseguiamo….

In questo post andremo ad esaminare le operazioni che sono possibili su BitBucket, che cosa possiamo fare, come possiamo usarlo una volta installato/disponiamo l’accesso.

…. parlando di GIT e BitBucket

Iniziamo l’esplorazione calando i concetti di GIT in BitBucket, e ci facciamo aiutare dai tutorial che la stessa Atlassian mette a disposizione :-), in modo da avere sempre dei validi punti di riferimento.

La prima cosa che andimo a vedere è il concetto di Repository, che non si discosta molto dal concetto di che già usiamo nei progetti di SVN o similari. In soldoni, è il punto dove andiamo a memorizzare i nostri progetti e, di conseguenza, in nostri file. La seguente immagine ci descrive molto bene quello che bitbucket ci mette a disposizione come repository.

Una volta che il repository è creato nel nostro BitBucket, possiamo caricare i file al suo interno. In aggiunta, possiamo anche far importare i nostri progetti direttamente da altri sistemi di controllo versione, senza alcuna difficoltà. Da questo momento sarà lui il nostro repository centrale dove andremo ad eseguire tutte le operazioni di merge

 

Ed una volta caricati i dati?

Una volta che i dati sono stati caricati, possiamo iniziare a lavorare eseguendo delle operazioni di Clone, ovvero per scaricare i dati sul nostro respository GIT locale e da li…. procedere con i nostri sviluppi. Occorre sempre tenere presente che, nei repository GIT locali, noi abbiamo sempre una copia completa di tutto.

Al termine dei nostri sviluppi, una volta che tutto è pronto, inizia la fase più delicata: il Merge. In questa fase andiamo a riportare le modifiche eseguite nel repository locale, sul repository master.

Questa fase è sempre molto delicata e deve essere sempre eseguita con cura, ma in questo BitBucket ci mette a disposizione diversi strumenti per aiutarci. Di conseguenza possiamo stare molto tranquilli.

Conclusioni

Fermiamo qui questa esplorazione. Nei prossimi post andremo a visionare diverse situazioni e cercheremo di analizzare nel dettaglio le varie funzionalità.




Usare google per configurare l’invio di mail

Tip & Tricks

In questo post andremo a vedere un piccolo esempio che ci può risultare molto utile quando dobbiamo provare i nostri sistemi ad inviare mail ma, al momento, non disponiamo di un server SMTP. Vediamo nel dettaglio

Nel dettaglio

Facciamo riferimento al seguente articolo della documentazione di Confluence, che ci aiuta nell’usare Gmail per eseguire l’invio delle mail.

Nel nostro caso occorre impostare, nella sezione di amministrazione di Confluence, ma possiamo anche riusare questi consigli su JIRA, come segue:

Sotto il menù ADMIN –> Mail Servers, impostare come nella figura sottostante:

Chiaramente occorre impostare una GMAIL da usare per l’invio delle email. Questa operazione non costa nulla, in soldini, e possiamo eseguirla senza problemi.

Conclusioni

Abbiamo visto come possiamo sfruttare, a nostro vantaggio GMAIL, per usarlo nell’invio delle mail attraverso Confluence. Ribadiamo che possiamo ottenere lo stesso risultato anche sotto JIRA. Questo tips è sicuramente utile nel caso di ambienti di test, per avere una simulazione il più reale possibile.

Reference

Cito nuovamente la pagina della documentazione, dove sono riportati maggiori dettagli (in inglese).




Inserire JIRA sotto Proxy

Altro tips & tricks

In questo post andremo ad esaminare come possiamo configurare il nostro JIRA affinché possa connettersi attraverso un proxy server.

 

Andiamo in dettaglio

Lo scenario è semplice. Abbiamo la nostra istanza di JIRA e vogliamo riuscire a configurare il tutto affinché sia possibile passare da un Proxy Server.  Per ovviare a questo, ci viene in aiuto il seguente articolo della documentazione Atlassian. L’articolo è in inglese, ma in questo post cercheremo di spiegare tutti i passaggi … in italiano 🙂

Fondamentalmente, JIRA viene eseguito sotto Tomcat. Quello che occorre fare è impostare i parametri della nostra istanza in modo tale da fargli leggere tali configurazioni.

Si tratta di impostare questi parametri al Tomcat:

-Dhttp.proxyHost=proxy.example.org -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.example.org -Dhttps.proxyPort=8080 -Dhttp.nonProxyHosts=localhost

per far si che si basi sul Proxy quando si connette ad internet (quando ad esempio si deve installare un determinato addon attraverso l’UPM, ovvero l’Universal Plugin Manager .

E dove si trovano questi settaggi?

Lo stesso articolo citato, ci fornisce tutte le indicazioni, che a sua volta sono riportate in questo articolo, sempre della documentazione Atlassian, dove viene spiegato come settare i parametri di avvio del Tomcat, ovvero quelli che abbiamo citato in precedenza.

Di conseguenza, quello che dobbiamo fare è andare a modificare il file:

<installdir>/jira/bin/setenv.[sh|bat]

impostando la variabile VM_SUPPORT_RECOMMENDED_ARGS inserendo i parametri sopra indicati. La seguente figura ci mostra il risultato:

jira-tips-01-01

Come potete vedere, usando il GRANDE editor NANO, di cui ammetto essere un FAN :-P, ho impostato la variabile con tutti i parametri aggiuntivi richiesti e sono riuscito a far andare la mia istanza sotto Proxy 🙂

Conclusioni

Un piccolo intervento, ovviamente che deve essere fatto in sicurezza e con tutte le precauzioni del caso: Si tratta sempre di un intervento sulla configurazione, cui deve seguire un riavvio del servizio JIRA, ci permette di poter far lavorare il nostro JIRA sotto Proxy.

Reference

Segue un breve elenco di articoli della documentazione Atlassian, che sono inerenti l’argomento.

 




Come rimuovere mysql completamente sotto ubuntu

Tips & Tricks – Come rimuovere MySQL

In questo post segnaliamo un piccolo trucchetto che ho trovato, usato con successo e che consiglio nella eventualità si debba fare un pò di pulizie. Nel nostro caso si tratta di un sistema per eseguire le pulizie di una installazione MySQL su di un sistema Ubuntu.

In che consiste?

Su windows le cose sono abbastanza semplici. Basta disinstallare l’applicativo tramite l’apposita procedura. Su Linux la faccenda è un tantinello più complicata. Vediamo come rimediare.

Consultanto il seguente articolo di AskUbuntu.com, ho trovato queste semplici e poche righe di codice, da lanciare via terminal, per eseguire delle vere e proprie pulizie su server, che da sfogo alla nostra sindrome della filippina

 

Andiamo in dettaglio:

sudo -i
service mysql stop
killall -KILL mysql mysqld_safe mysqld
apt-get --yes purge mysql-server mysql-client
apt-get --yes autoremove --purge
apt-get autoclean
deluser --remove-home mysql
delgroup mysql
rm -rf /etc/apparmor.d/abstractions/mysql /etc/apparmor.d/cache/usr.sbin.mysqld /etc/mysql /var/lib/mysql /var/log/mysql* /var/log/upstart/mysql.log* /var/run/mysqld
updatedb
exit

Cerchiamo di spiegare, con parole semplici, in che consiste per dare indicazioni a chi, non è espertissimo su Ubuntu Linux, in modo da non farlo andare alla cieca.

sudo -i -- Ci colleghiamo come Root
service mysql stop -- Fermiamo il servizio MySQL
killall -KILL mysql mysqld_safe mysqld -- Eseguiamo il kill dei vari processi coinvolti

Semplicemente blocchiamo MySQL.

apt-get --yes purge mysql-server mysql-client
apt-get --yes autoremove --purge
apt-get autoclean

Queste tre istruzioni rimuovono l’installazione di MySQL e …. fanno letteralmente un pò di pulizie sulle installazioni stesse, eliminando pacchetti e dipendenze non più necessarie.

deluser --remove-home mysql
delgroup mysql
rm -rf /etc/apparmor.d/abstractions/mysql /etc/apparmor.d/cache/usr.sbin.mysqld /etc/mysql /var/lib/mysql /var/log/mysql* /var/log/upstart/mysql.log* /var/run/mysqld
updatedb
exit

Questa parte di istruzioni elimina l’utente ed il gruppo mysql. Quindi esegue le pulizie sulla componente apparmor (rimando al link per le spiegazioni su questa componente). Quindi esce dalla modalità Root.

L’articolo citato fornisce anche indicazioni per pulire i file di log e le history, in modo da togliere tutte le tracce di MySQL.

Conclusioni

Abbiamo adesso a disposizione un metodo per ripulire il nostro server, nella eventualità di dover ripulire un pò. Nei prossimi post cercheremo di fornire ulteriori Tips che ci diano una mano.

 

 

 

Nel caso delle installazioni errate




Esempio di script runner – Clone Issue

Tips & Tricks – Esplorazione continua

In questo post proseguiamo la nostra esplorazione dei Tips & Tricks sui prodotti Atlassian. In particolare ci concentreremo su come usare Script Runner per eseguire alcune operazioni.

Clone issue

Si tratta di uno scernario che ci si può presentare per 1000 ragioni. Quello che potrebbe capitare è di assegnare un compito simile ad un secondo gruppo di lavoro: immaginate di trovarvi in una situazione in cui uno stesso applicativo viene gestito in versioni differenti, in base alle indicazioni dei clienti e, trovando un bug comune a tutti, prima si corregge sulla versione generale e successivamente deve essere riportato sulle versioni custom.

Come lo realizziamo?

Una possimibe strada è quella di servirsi di un addon di cui abbiamo parlato già in passato: ScriptRunner per JIRA. Attraverso questo addon possiamo estendere le funzionalità del nostro JIRA in modo da implementare questa operazione in automatico, arrivando a creare la issue clone.

Agiamo a livello di Workflow, dove inseriamo una postfunction che ci permette di poter aggiungere una nuova funzionalità, che l’addon ci mette a disposizione: Tra le possibili scelte abbiamo anche il Clone Issue. Questo ci propone una agevole composizione che ci permette di inserire parametri necessari alla clonazione.

clone-01

Come possiamo vedere abbiamo a disposizione una interfaccia molto semplice 🙂

Conclusioni

Abbiamo visto un semplice Tips & Tricks, che ci permette di poter risolvere alcuni problemi in maniera molto semplice e veloce. Nei prossimi post analizzeremo altre situazioni.

Reference

Segnalo anche questi link, che possono tornare utili per versioni un pò più vecchie di JIRA.