Project

General

Profile

Roadmap » History » Version 25

koszko, 10/12/2022 12:35 PM
indicate that the roadmap is not up to date

1 1 koszko
*Note: this is derived from the project plan prepared in relation to NLnet grant received by Haketilo/Hydrilla*
2
3 25 koszko
*Note: this roadmap requires updating; Haketilo browser extension is now in maintenance mode and the development instead focuses on Haketilo proxy*
4
5 1 koszko
# Project plan Haketilo/Hydrilla
6
At the time of this writing the browser extension Haketilo and its repository, Hydrilla, have already
7
seen their initial 0.1 demo releases. Below is a plan for their further development that will use the
8
experience gained during initial prototyping to increase stability and supply functionalities that have
9
been missing or provisional only, as well as make the tools available to a wider audience, more
10
secure and easier to use.
11
12
{{toc}}
13
14 13 koszko
## 1. ~~Haketilo and Hydrilla 1.0 pre-release~~ (#103)
15 1 koszko
Some big code changes to land in Haketilo and Hydrilla 1.0 will be available in a pre-release. The
16
pre-release will be made before delivery of several other side artifacts planned for 1.0.
17
18
##### Milestones
19
* ~~project plan~~[^1_prplan]
20
* ~~tentative software bill of materials~~[^1_bom_haketilo][^1_bom_hydrilla]
21
* ~~use of registerContentScript API in Firefox Haketilo port~~ (#92)[^1_haketilo_buildable_again]
22
* ~~move to the new Hydrilla JSON API prototyped at [https://hydrillabugs.koszko.org/projects/hydrilla/wiki/Repository_API
23
](/projects/hydrilla/wiki/Repository_API)~~[^1_haketilo_buildable_again]
24
* ~~most WebExtension storage.local uses replaced with IndexedDB~~ (#98)[^1_haketilo_buildable_again]
25
* ~~Python implementation of Hydrilla~~[^1_python_hydrilla]
26
27
[^1_prplan]: [[Roadmap|this very document]]
28
[^1_bom_haketilo]: [[Haketilo Software Bill of Materials]]
29
[^1_bom_hydrilla]: [[hydrilla:Hydrilla Software Bill of Materials]]
30
[^1_haketilo_buildable_again]: [commit 4c6a2323d90e9321ec2b78e226167b3013ea69ab](/projects/haketilo/repository/haketilo/revisions/4c6a2323d90e9321ec2b78e226167b3013ea69ab)
31
[^1_python_hydrilla]: [Hydrilla](/projects/hydrilla/repository/hydrilla) and [Hydrilla builder](/projects/hydrilla/repository/hydrilla-builder) repositories
32
33 21 koszko
## ~~2. Haketilo and Hydrilla 1.0 release (#104)~~
34 1 koszko
This will be the first release since receiving the NLnet grant and the first non-demo
35
release, hence it includes many improvements in various fields.
36
37
##### Milestones
38
* ~~basic automated Haketilo tests using Selenium and a Firefox-based web browser~~ (#66)
39 18 koszko
* ~~JSON schemas describing Hydrilla on-disk resource format, Hydrilla HTTP API and other JSON interfaces in use~~[^2_schemas_repo]
40
* ~~validation of all external JSON data in Haketilo and Hydrilla using included JSON schemas~~ (#105)[^2_schemas_used_haketilo]
41 20 koszko
* ~~sample Apache2 configuration file for use with Hydrilla~~ (#55)[^2_apache2_configs_added]
42
* ~~detailed documentation for installation and running of Hydrilla~~ (#55)[^2_hydrilla_user_manual]
43
* ~~manpage for Hydrilla~~ (#55)[^2_manpages]
44 1 koszko
45
[^2_schemas_repo]: [JSON schemas](/projects/hydrilla/repository/hydrilla-json-schemas) repository
46
[^2_schemas_used_haketilo]: [commit 57ce414ca81682a71288018a4d9001604002ec23 ](/projects/haketilo/repository/haketilo/revisions/57ce414ca81682a71288018a4d9001604002ec23)
47 20 koszko
[^2_apache2_configs_added]: [commit ea6afb92048c835752fe1c72ad52f424e2df88a8](/projects/hydrilla/repository/hydrilla/revisions/ea6afb92048c835752fe1c72ad52f424e2df88a8)
48
[^2_hydrilla_user_manual]: [[hydrilla:User manual]]
49 15 koszko
[^2_manpages]: [commit 1cb6aaae2055283d04aa0aa581e82addb8049ce4](/projects/hydrilla/repository/hydrilla/revisions/1cb6aaae2055283d04aa0aa581e82addb8049ce4) and [commit 363cbbb6a9fac49a377d8fa13ffede1483feabd5](/projects/hydrilla/repository/hydrilla-builder/revisions/363cbbb6a9fac49a377d8fa13ffede1483feabd5)
50 1 koszko
51
##### Estimated time
52 4 koszko
1.5 weeks
53
54 5 koszko
## 3. Distribution of Hydrilla and (when applicable) Haketilo in package managers (#106)
55 4 koszko
56
It is beneficial to have tools available in a format specific to various operating system distributions.
57
While the process of inclusion in official repositories is often a complex and lengthy one, preparing
58
the actual packages, as is the goal of this task, is a good first step to making that happen.
59
60
##### Milestones
61
62 23 koszko
* .deb packaging of Haketilo and Hydrilla[^3_debian_packaging]
63 4 koszko
* Nix packaging of Hydrilla
64
* Pacman PKGBUILDs for Haketilo and Hydrilla
65
* Guix packaging of Haketilo and Hydrilla
66 1 koszko
* RPM packaging of Haketilo and Hydrilla
67 22 koszko
68 23 koszko
[^3_debian_packaging]: [APT repository](http://hydrillarepos.koszko.org/apt/) and debian package git branches ([Hydrilla](/projects/hydrilla/repository/hydrilla?rev=debian-debian) and [Hydrilla builder](/projects/hydrilla/repository/hydrilla-builder?rev=debian-debian))
69 4 koszko
70
##### Estimated time
71
72
2 weeks
73
74 5 koszko
## 4. Development of Hydrilla website part (#35)
75 4 koszko
76
A project's website makes its first impression, and therefore deserves special care. In our case the
77
website will be part of our software Hydrilla.
78
79
##### Milestones
80
81
* planning a site structure
82
* designing a landing page
83
* cross-reference with Hydrilla to ensure uniformity of design and compatibility with the on-disk format
84
* crafting of text, graphics, and any other media
85
* assembly of website
86
87
##### Estimated time
88
89
2 weeks
90
91 24 koszko
## 5. ~~Development of a user-controlled captcha client~~ (#107)
92 4 koszko
93
Haketilo's goal is to give internet users control over their browsing. Replacing proprietary,
94
privacy-hostile client-side programs is part of that. A tool similar to the librecaptcha Python program
95 16 koszko
is needed, but in the form of a JavaScript library.
96 4 koszko
97
##### Milestones
98
99 24 koszko
* ~~facility for Haketilo-supplied scripts to bypass CORS~~[^5_bypass_cors]
100
* ~~free/libre JavaScript library for solving reCAPTCHA challenges~~[^5_recaptcha_client]
101
* ~~sample Haketilo resource making use of the library on a chosen website~~[^5_recaptcha_client_sample_script]
102 1 koszko
103 24 koszko
[^5_bypass_cors]: [Haketilo release v2.0-beta1](/news/13)
104
[^5_recaptcha_client]: [Hacktcha release 2022.6.21](https://git.koszko.org/haketilo-packages/hacktcha/tag/?h=v2022.6.21)
105
[^5_recaptcha_client_sample_script]: [Hacktcha demo script](https://git.koszko.org/haketilo-packages/hacktcha/tree/captcha-demo.js?h=v2022.6.21)
106
107 4 koszko
##### Estimated time
108
109
3 weeks
110
111
## 6. Permissions system for Haketilo-supplied resources (#73)
112
113
Custom, user-supplied resources Haketilo may deploy on viewed pages might require looser
114 1 koszko
restrictions than those normally employed on pages. Or, they might allow for tighter security
115 4 koszko
mechanisms to be employed.
116
117 1 koszko
##### Milestones
118
119 24 koszko
* specification of a new revision of Hydrilla API and on-disk format with permissions support[^6_hydrilla_api]
120 4 koszko
* facility to limit domains for which a Haketilo-supplied script is allowed to bypass CORS
121
* facility to specify what custom Content Security Policy should be used on a given pages (#88)
122 24 koszko
123
[^6_hydrilla_api]: [commit 7206db45f277c10c34d1b7ed9bd35343ac742d30](/projects/hydrilla/repository/hydrilla-json-schemas/revisions/7206db45f277c10c34d1b7ed9bd35343ac742d30)
124 4 koszko
125
##### Estimated time
126
127
2 weeks
128
129 5 koszko
## 7. Further means of user-controlled customization of sites (#108)
130 4 koszko
131 16 koszko
Besides the initial function of replacing sites' JavaScript it is also desired to facilitate supplying
132 4 koszko
additional data (e.g. images) and replacing other site components.
133
134
##### Milestones
135
136 6 koszko
* facility to make arbitrary bundled data files accessible to Haketilo-supplied scripts (#69)
137
* facility to replace the entire interface of a web page with user-supplied HTML (#70)
138 4 koszko
* facility to add user-supplied CSS to a web page
139
* facility to add user-supplied fonts to a web page
140
141
##### Estimated time
142
143
3 weeks
144
145 5 koszko
## 8. 50 sample site resources for Haketilo (#109)
146 4 koszko
147
To build the community its purpose depends on, Hydrilla must be clearly ready for use. This
148
requires a representative, well-stocked library of packages.
149
150
##### Milestones
151
152
* guide describing how to make and contribute custom site resources to Hydrilla
153
* at least 5 alternative site interfaces
154 16 koszko
* JavaScript of at least 10 free/libre web tools (like Etherpad, Ethercalc) repackaged to be run in a user-controlled way from Haketilo
155 4 koszko
* at least 50 different custom site resources in total
156
157
##### Estimated time
158
159
2 weeks
160
161 17 koszko
## 9. ~~Haketilo LibrePlanet presentation~~ (#110)
162 4 koszko
163
LibrePlanet is a conference organized by the Free Software Foundation (FSF). It is "an opportunity
164
to meet and interact with other people with both a technical and non technical background" and to
165
share experience.
166
167
##### Milestones
168 1 koszko
169 17 koszko
* ~~applied to LibrePlanet 2022~~
170
* ~~prepared presentation about giving users back the control over web browsing~~
171
* ~~made the presentation at LibrePlanet 2022 (if accepted there) or posted a video presentation on Haketilo website (as a fallback case)~~[^lp2022]
172
173
[^lp2022]: https://libreplanet.org/2022/speakers/#5790
174 4 koszko
175
## 10. Localization of Haketilo and Hydrilla
176
177
To truly empower to web users all over the world, Haketilo, Hydrilla, and all associated materials
178
must be able to support languages from across the world.
179
180
##### Milestones
181
182
* automatic content language negotiation on Hydrilla pages and the website
183
* language selection option on Hydrilla pages and the website
184 10 koszko
* internationalization of Haketilo (#51)
185 4 koszko
* language selection option in Haketilo
186
* Polish translation
187
188
##### Estimated time
189
190
3 weeks
191
192
## 11. Security vetting of Haketilo and Hydrilla
193
194
As NLNet-funded projects, Haketilo and Hydrilla have the privilege of a security review from
195
Radically Open Security. To make use of this opportunity, we will ensure any findings provided are
196
properly addressed.
197
198
##### Milestones
199
200
* action on any recommendations or other findings
201
* report of how each finding from the vetting was addressed, and why
202
* note of any key issues in the developer documentation, in order to avoid repetition in the future
203
204
##### Estimated time
205
206
2 weeks
207
208
## 12. Accessibility vetting of Haketilo and Hydrilla
209
210
To empower every web user, Haketilo and Hydrilla must support the interfaces they need.
211
212
##### Milestones
213
214
* action on any recommendations or other findings
215
* report of how each finding from the vetting was addressed, and why
216
* note of any key issues in the developer documentation, in order to avoid repetition in the future
217
* certified WCAG accessible
218
219
##### Estimated time
220
221
2 weeks
222
223
## 13. Manifest V3 Haketilo port
224
225
Although highly controversial, the Manifest V3 extension format seems unavoidable.
226
227
##### Milestones
228
229
* background page replaced with Service Workers
230
* blocking webRequest operations replaced with declarativeNetRequest
231
* Haketilo working under a Chromium-based browser as a Manifest V3 extension
232
233
##### Estimated time
234
235
4 weeks
236
237
## 14. Tighter testing of Haketilo
238
239
Testing in multiple browser environments is important to ensure stability of the extension.
240
241
##### Milestones
242
243
* automated tests under each supported extension platform with at least 1 Firefox-based and Chromium-based platform
244
* integration tests of communication between Haketilo and a Hydrilla instance
245
246
##### Estimated time
247
248
2 weeks
249
250
## 15. More thorough documentation of Haketilo and Hydrilla internals
251
252
With codebase refactored and stabilized, a worthy thing is to have it properly described for others
253
to hack on.
254
255
##### Milestones
256
257
* graphical diagram(s) describing execution contexts in Haketilo and the way scripts running in various context communicate
258
* graphical diagram(s) describing the algorithm for querying by Haketilo URL patterns
259
* comprehensive description of strategies employed and APIs used for replacing scripts and CSP in Haketilo
260
* graphical diagram describing how entities (resources, mappings, licenses) depend on each another
261
* docstring documentation of every Python function
262
* HTML documentation generated from Python source code
263 16 koszko
* JSDoc description of every Haketilo JavaScript function exported from file
264
* HTML documentation generated from JavaScript source code
265 4 koszko
266
##### Estimated time
267
268
2 weeks
269
270
## 16. Tooling for building of site resources
271
272
Simple scripts don't require building before distribution. Wasm modules and bigger libraries do. For
273
users to control the resources they use in Haketilo, there needs to be some well-defined way of
274
accessing the sources and repeating the build process.
275
276
##### Milestones
277
278
* specification of Haketilo source package format
279
* ability to specify other programs the build process depends on
280
* software to automatically build a Haketilo source package
281
282
##### Estimated time
283
284
2 weeks
285
286
## 17. Package signing in Haketilo and Hydrilla
287
288
Haketilo uses encrypted HTTPS connections to query Hydrilla API. However, to boost the security
289
and enable use of mirrors, we plan to also use PGP signatures on site resources served.
290
291
##### Milestones
292
293
* specification of a new revision of Hydrilla API and on-disk format with PGP signatures support
294
* tool for batch signing of site resources
295
* Hydrilla support for serving PGP signatures
296
* Haketilo support for downloading and verifying PGP signatures
297
* facility to manage trusted public keys within Haketilo
298
299
##### Estimated time
300
301
3 weeks
302
303
## 18. Support for custom meta-sites in Haketilo/Hydrilla
304
305
Allowing users to modify pages loaded by their browsers is our goal. Allowing them to aggregate
306
content from many sites on one page is a natural extension of it. Just as is allowing them to run
307
static web apps without having to trust some website serving them.
308
309
##### Milestones
310
311
* specification of a new revision of Hydrilla API and on-disk format with meta-sites support
312 9 koszko
* support for meta-sites in Hydrilla and Haketilo (#72)
313
314 4 koszko
315
##### Estimated time
316
317
3 weeks
318
319
## 19. Easier content management and editing within Haketilo (I)
320
321
Easy configuring and editing of site resource bundles is Haketilo's raison d'รชtre. To definitively
322
meet this expectation, any shortcomings must be identified and rethought.
323
324
##### Milestones
325
326
* testing with untrained users/consultation with "UX experts"
327
* identified annoying quirks/problems
328
* comparison with UIs of similar extensions
329
* designed alternatives to identified problems
330
* user interface mock
331
* a compiled plan for UI changes
332
333
##### Estimated time
334
335
2 weeks
336
337
## 20. Easier content management and editing within Haketilo (II)
338
339
The previously compiled plan and carefully-prepared user interface mocks will direct the
340
implementation efforts.
341
342
##### Milestones
343
344
* new Haketilo settings page interface implementation following the plan
345
* new Haketilo popup page implementation following the plan
346
* automated Haketilo GUI tests
347
348
##### Estimated time
349
350
2 weeks
351
352
## 21. REUSE specification compliance
353
354
License terms of software projects' files should be unambiguous and easy to analyze by humans
355
and computers alike. Compliance with the REUSE specification helps ensure that.
356
357
##### Milestones
358
359
* REUSE compliance in Hydrilla repository
360
* REUSE compliance in project website repository
361
* REUSE compliance in Haketilo repository
362
* REUSE compliance in custom site resources repository(ies)
363
364
##### Estimated time
365
366
1 week
367
368
## 22. Integrity constraints in Haketilo **(optional)**
369
370
One Haketilo custom site resource may depend on another, but initial versions of Haketilo did not
371
verify that dependencies are present. This and other sanity checks can be employed.
372
373
##### Milestones
374
375
* dependency checks when "installing" or upgrading a custom resource in Haketilo
376
* dependency checks when removing a custom resource from Haketilo
377
* facility for cascade removal
378
* validation of Haketilo URL patterns and other values typed in by the user
379
380
##### Estimated time
381
382
1 week
383
384
## 23. Sample meta-sites for Haketilo/Hydrilla **(optional)**
385
386
Running a static webapp like litewrite by visiting its website relies on the security of TLS and
387
network connectivity. Having it packaged as a separate browser extension requires giving it
388
excessive permissions. Running it from an HTML file is inconvenient.
389
390
##### Milestones
391
392
* at least 5 existing webapps packaged as meta-sites
393
* at least 5 meta-sites aggregating content from various client websites
394
395
##### Estimated time
396
397
3 weeks
398
399
## 24. Haketilo build system runnable from the browser **(optional)**
400
401
For portability of Haketilo's POSIX shell-based build system we avoided depending on Node.js,
402
NPM and similar tools. However, an even more portable alternative exists - to contain the build
403
system inside a standalone HTML page.
404
405
##### Milestones
406
407 16 koszko
* JavaScript-based build system in an HTML page (#47)
408
* facility to run the JavaScript-based build system from the command line
409 4 koszko
410
##### Estimated time
411
412
2 weeks
413
414
## 25. User upload of content to Hydrilla website **(optional)**
415
416
To be able to easier gather and share custom site resources within the community, we need a
417
user-friendly platform.
418
419
##### Milestones
420
421
* registrations on a Hydrilla instance
422
* upload of custom site resources to a Hydrilla instance
423
* facility to easily and efficiently moderate the content uploaded by users
424
425
##### Estimated time
426
427
3 weeks
428
429
## 26. Further development of Hydrilla platform **(optional)**
430
431
Users should be able to share not only custom site resources but also their opinions about them.
432
433
##### Milestones
434
435
* support for user comments
436
* support for user ratings
437
* support for flagging site resources that are broken or have other issues
438
* development of comment quality control systems and policies
439
440
##### Estimated time
441
442
2 weeks
443
444
## 27. Facility for setting up Hydrilla repository mirrors **(optional)**
445
446
While allowing users to set up independent instances of Hydrilla gives them greater control over
447
site content they use, it does not by itself increase the robustness and maximum throughput of
448
Hydrilla platform. Enabling the use of mirrors does.
449
450
##### Milestones
451
452
* support for setting up and automatically synchronizing Hydrilla mirrors
453
* support for announcing available mirrors in Hydrilla
454
* support for fetching repository mirrors list in Haketilo
455
* support for distributing requests over multiple repository mirrors in Haketilo
456
* documentation
457
458
##### Estimated time
459
460
2 weeks
461
462
## 28. 150 sample site resources for Haketilo **(optional)**
463
464
To maintain community growth and participation, Hydrilla's collection must be visibly alive and
465
evolve with Haketilo's feature set.
466
467
##### Milestones
468
469
* at least 20 alternative site interfaces
470
* at least 20 existing webapps packaged as meta-sites
471
* at least 150 custom site resources in total
472
473
##### Estimated time
474
475
2 weeks
476
477
## 29. 200 sample site resources for Haketilo **(optional)**
478
479
To maintain community growth and participation, Hydrilla's collection must be visibly alive and
480
evolve with Haketilo's feature set.
481
482
##### Milestones
483
484
* at least 20 accessibility-improving site changes
485
* at least 10 meta-sites aggregating content from various client websites
486
* at least 200 custom site resources in total
487
488
##### Estimated time
489
490
2 weeks
491
492
## 30. Automated building of Haketilo source packages uploaded to Hydrilla **(optional)**
493
494
Requiring packagers to upload compiled code places an extra burden on them, and complicates
495
reproducibility. Hydrilla should be able to build from source packages.
496
497
##### Milestones
498
499
* Hydrilla automated resource builds feature
500
* security consultation of the feature
501
502
##### Estimated time
503
504
2 weeks
505
506
## 31. Self-documented Haketilo **(optional)**
507
508
Now matter how user-friendly the graphical interface is, an explanation of some of the concepts
509
might be needed. The next step, after having the documentation available on the project website,
510
is bundling it with the extension itself.
511
512
##### Milestones
513
514
* Haketilo popup self-documented inline
515
* Haketilo settings page self-documented inline
516
* documentation included as extension-bundled HTML pages
517
518
##### Estimated time
519
520
2 weeks
521
522
## 32. Displaying Hypothesis annotations for given site **(optional)**
523
524
Haketilo makes site resources for websites you visit available in only a few clicks. It would be
525
useful to have the same capacity for comments. The established, libre https://hypothes.is/ provides
526
a framework for this.
527
528
##### Milestones
529
530
* support for displaying current site's Hypothesis annotations in the popup
531
* support for adding adding Hypothesis annotations in Haketilo
532
533
##### Estimated time
534
535
2 weeks
536
537
## 33. Automatic generation of independent browser extensions from Haketilo site resources **(optional)**
538
539
Haketilo's rich feature set might also be an inconvenience. It may be overwhelming or irritating to
540
some users and has a higher risk of breaking with newer browser versions than a simple extension
541
would have. Thus, an option to install just a single Haketilo resource in the browser would be
542
useful.
543
544
##### Milestones
545
546
* automatic generation of Firefox WebExtensions from Haketilo site resources
547
* automatic generation of Chromium ManifestV3 WebExtensions from Haketilo site resources
548
549
##### Estimated time
550
551
2 weeks
552
553 11 koszko
## 34. Facility to automatically convert page's "native" scripts to a Haketilo resource **(optional)** (#6)
554 4 koszko
555
Haketilo gives users control over scripts being executed on a given web page. The scripts to be
556
used need to be defined in Haketilo as a resource. Doing this manually might be time-consuming
557 16 koszko
for a user who aims to use mostly the same JavaScript a website normally serves, but served from
558 4 koszko
within Haketilo.
559
560
##### Milestones
561
562
* automatic conversion of page's inline scripts in a Haketilo resource
563
* inclusion of page's external scripts in generated resource
564 16 koszko
* inclusion of page's intrinsic JavaScript events in generated resource (#7)
565
* displaying warnings when a site's JavaScript is known to use mechanisms that might stop
566 4 koszko
  such automatic package from working properly
567
568
##### Estimated time
569
570
3 weeks
571
572 16 koszko
## 35. Use of a standalone JavaScript engine to perform unit tests in Haketilo **(optional)**
573 4 koszko
574
A Selenium-driven web browser is currently used to test parts of Haketilo. Those tests that don't
575
rely on browser APIs could as well be run outside of browser which would save time during tests.
576
577
##### Milestones
578
579 16 koszko
* selected the JavaScript engine to use for testing
580 4 koszko
* facilitated writing Haketilo tests against the chosen engine
581
* applicable existing tests modified to be run without a web browser
582
583
##### Estimated time
584
585
2 weeks
586
587
## 36. Supplemental anti-bot measures in Hydrilla **(optional)**
588
589
Limiting the number of allowed registrations and content uploads is our planned basic way to
590
prevent Hydrilla instances from being harmed by automated requests. Another measures can be
591
added to further improve platform's resilience.
592
593
##### Milestones
594
595
* email-verified registrations
596
* selected an ethical, privacy-friendly captcha solution
597
* implementation of the chosen captcha solution
598
599
##### Estimated time
600
601
2 weeks
602
603
## 37. Support for external user authentication mechanisms in Hydrilla **(optional)**
604
605
It should be possible to run Hydrilla as part of a bigger web service. Users should be able to use
606
the same set of credentials for logging in in various parts of such service.
607
608
##### Milestones
609
610
* selected an authentication mechanism to support
611
* implementation of the feature
612
613
##### Estimated time
614
615
1 week
616
617
## 38. Support for building Hydrilla and Haketilo using Autotools **(optional)**
618
619
The specificity of Haketilo and Hydrilla means a complex build system like Autotools is not
620
necessary. It could, however, be added as optional to supplement their simple build mechanisms.
621
622
##### Milestones
623
624
* Hydrilla buildable with Autotools
625
* Hydrilla out-of-source builds possible
626
* Hydrilla tarball producible with a make rule
627
* Haketilo buildable with Autotools
628
* Haketilo out-of-source builds possible
629
* Haketilo tarball producible with a make rule
630
631
##### Estimated time
632
633
1 week
634
635
## 39. Evaluation of non-WebExtension platforms for the purpose of porting Haketilo **(optional)**
636
637
WebExtensions are really a convenient platform for developing software that empowers users. But
638
this platform is also tightly controlled by big organizations and has some serious limitations and
639
shortcomings.
640
641
##### Milestones
642
643
* evaluation of existing Webkit-based browsers
644
* evaluation of XUL extensions platform still used in some Firefox forks
645
* prepared evaluation report
646
647
##### Estimated time
648
649
1 week
650
651
## 40. Development of the first non-WebExtension Haketilo port **(optional)**
652
653
Users suffer a vendor lock-in with few mainstream web browsers. Lack of their favorite extensions
654
is what stops them from switching to more user-controlled alternatives. Haketilo should not
655
contribute to that problem.
656
657
##### Milestones
658
659
* selection of a target platform based on previous evaluation
660
* specification of tasks
661
* development roadmap
662
* prototype
663
* automated tests
664
* developer documentation
665
* user documentation
666
667
##### Estimated time
668
669
7.5 weeks