maanantai 7. syyskuuta 2015

Racket packages

Viikko sitten ryhdyin tutkimaan miten saisin julkaistua Racket Turtle - kirjastoni oikeana package:na. Nythän koodini on ollut koko ajan Github:ssa mutta se on pitänyt ladata sieltä hankalasti .zip - paketissa, avata paketti ja vasta sitten ryhtyä koodaamaan. Huomasin koulutuksissa, että tämä on yllättävän vaikeaa opettajille ja oppilaille.

Ensin opiskelin Racket package creation:ia teoriassa täästä linkistä. Tavallinen .rkt tiedosto muuttuu package:ksi niin, että sijoittaa sen hakemistoon, jonka nimestä tulee package:n collection ja rkt-tiedoston nimestä kirjaston nimi. Nyt olin siis tekemässä  teachpacks nimistä collection:ia ja sen sisälle kirjastoa racket-turtle. Tavoitteeni oli siis, että kirjastoani voisi käyttää DrRacket:ssa näin:

(require teachpacks/racket-turtle)

Ensimmäinen vaihe tässä oli tehdä Racket - Turtlesta paikallinen kirjasto. Se tehtiin menemällä komentotulkin kautta hakemistoon teachpacks ja ajamalla siellä Racket Package Manager kutsu:

> raco pkg install

Nyt pystyin jo omalla koneellani käyttämään Racket Turtle:a kuin se olisi oikea package. Tämän jälkeen pakettini piti rekisteröidä Racket - package serverille. Ilmoitin, että pakettini nimi on "teachpacks" ja että se sijaitsee Githubissa osoitteessa: git://github.com/tyynetyyne/teachpacks.git

Nyt paketin pystyy kuka tahansa lataamaan ja asentamaan käyttöönsä esim. DrRacket:iin integroidun Package Managerin avulla. Package Managerin saa auki valitsemalla File->Package Manager. Package Source:ksi kirjoitetaan paketin nimi eli tässä tapauksessa teachpacks ja painetaan <enter>. Nyt paketti latautuu ja asenttuu koneelle (tämä ei vaadi admin oikeuksia). Nyt kirjaston voi ottaa käyttöön koodissa kirjoittamalla em. require - lause. Huimaa!

DrRacketin Package Manager - ikkuna
Lopuksi tein vielä dokumentaation pakettini palveluista käyttämällä Scribbleä ja tallensin .scrbl tiedostot myös Githubiin.  Scribble-tiedostojen olemassaolo sekä muutama muu asia piti vielä konffata info.rkt tiedoston avulla ja sitten olikin valmista. Tältä näyttää Scribble:stä HTML:ksi käännetty Racket Turtle - dokumentaatio.

Aivan ongelmitta tämä prosessi ei onnistunut, palvelimella oli hieman erilainen ympäristö kuin omalla koneellani, joten Scribble-dokumentaatio ei suostunut toimimaan heti. Pienen säädön jälkeen pakettini sai tänään "vihreää" (jouduin mm. poistamaan kaikki viittaukset Racket GUI komponentteihin kuten universe - kirjastoon).

Hienoa tässä on myös se, että voin päivittää pakettini päivittämällä tiedostot Githubiin ja seuraavana päivänä ne löytyvät uudesta paketista automaattisesti.



Ei kommentteja:

Lähetä kommentti