Project

General

Profile

Roadmap » History » Version 24

koszko, 06/21/2022 02:43 PM
Update after releasing Hydrilla 1.1, Haketilo 2.1-beta1 and Hacktcha (libre client for ReCAPTCHA)

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