Kaydet (Commit) aa53db9a authored tarafından Suleyman Poyraz's avatar Suleyman Poyraz

New roadmap for inary-2.0

Son bir senedir devam eden canavarca geliştirmeleri artık bir düzene sokma vakti geldi.
üst 86a711c5
2018-01-17 Suleyman Poyraz <zaryob.dev@gmail.com>
2019-08-12 Suleyman Poyraz <zaryob.dev@gmail.com>
* Uzun zamandır ağız tadı ile bir ChangeLog yazamadım.
* gericekme branchi hakkında:
- kod üzerinde bazı deneysel işler ali rıza keskin tarafından yapıldı.
ancak yapılan değişiklikler beni rahatsız etti. asıl kodun mantığı ve
inary algoritmasının taa pisi dönemlerine uzanan avantajlarına gölge
düşüren bu kodlar arasından işe yarar nitelikte olanları alındı. Ancak
şunu açıkca ifade etmeliyim ki tüm değişiklikler herkesin gözle
görebileceği şekilde ortaya kondu.
- işe yarayabilecek 1-2 yama harici atıldı.
- bu branch üzerinde öğrendiğim şu topological sort algoritması yavaş Ancak
iyileştirme yapılamayacak durumda değil. aklımdaki değişimler yapıldığında
umarım daha güzel olacak
* mevcut branchler hakkında:
- mevcut brancler features/ develop ve master olmak üzere 3 tane:
+ features: bu tag kendii içinde kod temizliği, çeviriler, belgeleme,
daha önceden çıkartılan script ve testsuiti içindir. her bir branch
başarıya ulaşınca develop branchine merge edilip kaldırılacaktır. develop ise
gerekli testlerinin ardından master tagına bağlanacaktır ve her bağlamada
inary yeni bir sürüm numarasına sahip olacaktır
* bu zamana kadar yapılanlar hakkında:
- ufak çaplı bug avları.
- zamanlı zamansız karşıma çıkan hataların tespiti.
- 2 ileri bir geri kod saçmalaları. daha detaylı bilgi için lütfen git diff yapınız.
* yol haritası:
- RoadMap üzerinden yazılmıştır. Bir daha uğraştırmayın.
2019-01-17 Suleyman Poyraz <zaryob.dev@gmail.com>
* fetcher pycurl kullanılarak yeniden yazıldı. Bu sayede base sistemde
dependency yükü azaldı, partial file download özelliği getirildi.
* actionsapi modulleri elden geçirildi kararlılık sağlandı
......
This diff is collapsed.
Inary TODO List
==============
A list of tasks to accomplish, organized into priority sections. This wasn't deleted because
i want to continue pisi project but now inary evolved a new package manager. its time to
change RoadMap.
Legend:
- Todo
? Not determined if/how we have to do
/ In progress
+ Accomplished
1. Pre-Alpha
+ reading spec file
+ writing
+ files
+ metadata
+ Actions API framework
+ sample api modules (example: autotools)
+ C Language Tools
- GoLang Tools
+ Python Language Tools
+ Ruby Language Tools
- Use gem agent
+ Perl Language Tools
+ CMake Tools
+ unit test
+ source building
+ Detailed build log file
+ package module
+ extraction
+ add file / compression
+ package creation
+ install database
+ package database
+ command line interface
+ inary-build
+ inary-install
+ inary-index
+ inary-updatedb
+ single repository index
+ simple dependency checking
+ Package/Files
+ Detailed inary logs into /var/log
2. Alpha
+ multi-package dependency analysis (eray)
+ design a package operation planner
+ install/remove operations (eray)
+ command line interface:
+ inary remove
+ svn-like CLI
+ configuration file
+ define the format of the configuration file
+ extend Config module (config.py) accordingly
+ define configuration keys (baris - meren)
+ query
+ list of installed packages (eray)
+ refactor actionsAPI (caglar)
+ fix xml indentation (meren)
+ define file types (doc, executable, conf, etc...) (baris - meren)
+ write specfile (eray)
+ file locking for database access [not tested!] (eray)
+ implement file uri
+ extend the modules dealing with files accordingly
+ ui module improvements
+ methods for interaction (yes, no questions, etc.)
+ implement source database (eray)
+ easy package preparation
? convert ebuild to inary
\ convert deb packages to inary
\ convert rpm packages to inary
+ Configuring system interface after installing
+ what do we need to specify in a package
+ package install: register script and configure system with it
+ package remove: unregister script and reconfigure systen with it (Zaryoh)
+ internet installation
+ support URI's whereever a filename is supported
+ http server
+ https server
+ ftp server
+ inary updatedb over internet
3. Beta
+ build cmd: install build deps
+ improve url support, it's a little dumb at the moment
+ devise a File class that works with URLs
+ add URL support to autoxml
+ info cmd: reverse dependencies of a package
+ a helper script for finding dependencies (eray)
+ autoxml: automated xml processing (eray)
+ design
+ basic types
+ list type
+ class type
+ localtext/text types (localtext.... Ummm?.... )
+ write meaningful localtext datas
+ return meaningful localtext summaries and descriptions
+ revised interface
+ Error handling
+ improved error handling, check routines, hooks, format/print routines
+ write a meaningful traceback output
+ xmlfile support (read/write)
+ string member, in addition to tag/attribute members
+ replace specfile with new specfile using autoxml
+ autoxmlize: metadata, index, dependency and related code paths
+ inheritance support
+ revise writing, error reporting, tests
+ components (eray)
+ requirementsu
+ xml format, add to PSPEC
+ index component.xml's and make use of them in build
+ a database of components:
+ query components by name
+ query list of packages in a component
+ index: update component database(s)
+ bug fixing
+ install/remove/upgrade components
+ safety switch: preserve system.base, install system.devel for build, etc.
+ info <component>
+ started documentation
+ component dependencies
+ multiple package repository (eray)
+ decide how to implement
+ support repo order
- file conflict checker
+ refactor xml support and implement multiple backends
+ ciksemel based modules rewrite with xml.dom.minidom (Zaryob)
+ partial caching and automatic resume for file download (meren)
+ use a '.part' extension
+ resume file downloading (pycurl) (Zaryob)
+ search-file command (eray)
+ exception handling (eray)
+ uniform exception hierarchy
+ proper handling
+ API: we even have application users (eray)
+ a facade module inary.api (eray)
+ clean unuseful inary.api functions
+ a library init command (eray)
+ high-level package ops, index (eray)
+ info/util commands (eray)
+ build commands (baris)
+ documentation
+ actionsAPI documentation, unittests (caglar - meren)
+ versioning information document (eray - baris)
+ UI
- INARYMAT
/ Automatic dependency finder
/ read pkgconfig files and find dependencies (Zaryob)
- find cycle dependencies (Zaryob)
- Automatic build upgrader
/ creating pspec files from shell script type
- pykde & pygtk GUI (cartman)
+ pykde interface (used package-manager)
+ improve interface (eray)
+ refactor UI, reintroduce base class
+ add an ack interface, start cleaning up a bit
+ cli (eray)
+ ask alternatives to choose from
+ eliminate \n's from infos, what's the point?
+ metaclass coolness for CLI command framework (eray)
+ i18n support
+ translations and correct language for summary, description (packagers)
+ make inary messages translatable (eray)
+ .pot support for dist script (gurer)
/ translate messages mesajların çevirisinin yapılması (inary tr.po)
- az
+ de
+ en
+ es
+ fr
- hr
+ hu
+ it
- nl
- pl
- pt_BR
+ ru
- sv
+ tr
- uk
+ proper unicode handling in code - tons of fixes (eray - baris)
/ configure-pending (eray) (should return which packages configured)
- report scom scripts problems to developers
+ configure pendings (Zaryob)
+ proper commar connection (baris - gurer)
+ ignore-deps (eray)
+ more robust upgrade (eray)
+ query (eray)
+ find package by name, display summary/description
+ info --files option (like rpm -ql, but better of course)
+ implement missing unit tests
+ sourcedb
+ package (baris)
+ configuration file (baris)
+ upgrade (eray)
+ upgrade operation
+ test upgrade op
+ system-wide upgrade (upgrade-all) komutu
+ incremental build (eray)
+ generate binary release number by comparing MD5s (eray)
+ keep track of successfully completed configure, make, install steps
(necessary for large-scale builds?) (meren)
+ database locking bugs (eray)
+ SHOULD WORKING UNDER FIXME PARTS
4. Release
* high priority
+ transaction stuff for database (eray)
+ database version file
* low priority
+ search command: (eray)
+ implement an inverted index
+ search in summary and description
5. Post Release
* high priority
- refactoring
sort of match the refactoring of inary-2.x series and improve it
+ accelerate search
/ package signing
/ an embebed package signer.(Zaryob)
+ a flag to sign package after building
+ code to check if the package has a valid signature
- cli improvements
- non interactive mode (similar to --auto in urpmi)
/ high-level build commands
+ an emerge command, just for fun
+ make use of binary repo to satisfy dependencies in emerge
/ build command enhancements:
+ aware of repo sources
? full dependency analysis like install/upgrade etc.
? build-all (or build-distro) command, or as a separate tool
+ make a package and sourcedb for each repo
+ packagedb
+ sourceb
? improve url support: consider adding "other" protocols
- removable media: media://
- ftp support
* medium priority
- UI impl: non-interactive use that selects defaults and logs output
- UI impl: a general purpose Qt or GTK UI
/ multi-architecture support
+ design decisions
+ extend XML specs to support that
- cross-platform building support
+ incremental build/fetch for repository index (inary-index.xml)
/ xdelta support (caglar)
- diffsets
- a command (check-repo) to check if repos are consistent wrt dep relations
- component improvements (optional)
- maintain a list of components each component has
- maintain a list of packages
- more support for categories:
- put categories into a database
- fast search for categories
* low priority
/ overhaul installdb (try to merge its use with packagedb) (eray)
/ verify metodlari
+ SpecFile
+ MetaData
+ Files
/ Index (somebody should write one :} )
- autoxml:
- revise error checking, printing and tests
- uri type
- date type
- enum type
- make autoxml dependent on only xmlext and xmlfile interfaces
- search command: (eray)
+ search components
- english stemming
- turkish stemming
- phonetic/syntactic fault tolerance (whichever works!)
- in particular evaluate soundex and metaphone
- research if there are language independent phonetic encodings
- implement as an option (or make it possible to turn it off if it works well :))
- fault tolerant search in package names (somehow)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment