Vi har et RSS grensesnitt mot Rust Changelog som gjør at man kan aggregere endringer fra Rust i en passende RSS-leser fremfor å måtte følge med på Changelog-websiden.
I tillegg til å liste alt som er i Changelog kan man sette et filter som begrenser hvilke saker som vises. Det er for øyeblikket mulig å begrense basert på:
queue=unix - ticketen må tilhøre unix-køen
owner=bruker - ticketen må være eid av 'bruker' ( 'none' brukes for en ticket som mangler eier )
state=new - ticketen må være i en bestemt tilstand ( new / pending / feedback / etc. )
Det finnes også negative/ekskluderende utgaver av disse: nqueue, nowner, ... Det gir ikke så mye mening å kombinere negative og positive varianter av samme type kriterium ...
Kriterier kan kombineres:
queue=unix&state=new - alle nye tickets i unix-køen
queue=unix&queue=printers&owner=none&nstate=new - alle tickets i unix eller printers som ikke er i nye, men heller ikke har en eier
Feed'en har url http://rust.idi.ntnu.no/rustrss, og evt. kriterier spesifiseres etter et spørsmålstegn:
http://rust.idi.ntnu.no/rustrss?state=new - alle nye tickets
http://rust.idi.ntnu.no/rustrss?owner=none&state=new - alle eierløse, nye tickets
http://rust.idi.ntnu.no/rustrss?owner=none&queue=windows - alle eierløse windows-tickets
Eksprimertering vha feed uri (http://www.brindys.com/winrss/feedformat.html):
NB: da feeden lenker mot webrust, som krever spesiell tilgang, er denne funskjonaliteten uten verdi for ordinære brukere.
Tekniske detaljer
Evaluering
Evalueringen er boolsk: kriteriene danner et predikat ticketen må tifredsstille for å inkluderes. Bruken av '&' i uttrykkene over skyldes HTTP-standarden, og har ingen invirkning på semantikken til søket. For å unngå forvirring brukes derfor mellomrom istedet for '&' i eksemplene under.
Uttrykket x = a y = b nz = c har semantikken ( x == a AND y == b AND NOT z == c ), mens x = a x = b x = c tolkes som ( x == a OR x == b OR x == c ), slik at x = a x = b y = c blir ( x == a OR x == b ) AND y = c.
Dette gjøres egentlig ved å samle "like" kriterier i et sett, slik at x=a x=b y=c y=d nz=e tolkes som x in [ a, b ] and y in [ c, d ] and z not in [ e ].
Egentlig, egentlig, gjøres dette ved at uttrykket kompileres til en funksjon som tar en ticket som input og brukes som predikat for å avgjøre hvorvidt ticketen skal inkluderes.