News From Inqlude, the Qt Library Archive

I found the blog of Cornelius who is my mentor, where he had recorded his marvelous ideas and experiences. It contains lots of interesting posts. I found several posts that are related to my project task too. 

In that blog, I found a post that explains me about 'Inqlude'. The post was titled as 184 Qt Libraries. I found the importance of writing blog posts too. In open source community, it is a good practice to write posts on what we do so that another contributor can get help from those posts some day in future. 

The post had attached a video on "Cornelius Schumacher - News from Inqlude, the Qt library archive", which was very important to figure out what 'inqlude' actually is. In this video, he nicely pronounces his name which I was worrying how to pronounce since a long time.

These are the notes which I took from the talk of Cornelius Schumacher at Qt Developer Days 2013.

Qt is a great library that contains lots of stuff and functionalities. There are many libraries based on Qt that provides additional functionalities such as fancy graphics for applications, authentication, protocol implementation etc.


It is not always easy to find the library that is required for our purpose. If you google for Qt libraries, you will find about eight million of libraries. Of course, googling is not a good approach to find these libraries. 


A group of KDE people at a meeting came up with a solution to this problem, and the basic idea was to build one curated archive of all Qt-based libraries.


As an application developer, you have one place to find your libraries and as an library developer, you have a central place where you can publish that. One place where everything goes together collecting all the nice Qt libraries which are out there.

Then they came up with a fancy name: "inqlude" which is also easy to remember.

Concept came up with three parts.

1. Format for Qt library meta data -  structured way of collecting meta data for libraries so that you can actually work with them.

2. Tooling - Provide extra tooling, tools to process meta data, search for specific aspects, create presentations of this data.
nanduni@nanduni-TECRA-M11:~/inqlude/website/inqlude$ inqlude
  inqlude create <manifest_name> [version] [release_date]               # Create new or updated manifest
  inqlude create_kde_frameworks <frameworks-git-checkout> <output_dir>  # Create manifests from git checkout of KDE frameworks module in given ...
  inqlude download                                                      # Download source code archive
  inqlude get_involved                                                  # Information about how to get involved
  inqlude help [COMMAND]                                                # Describe available commands or one specific command
  inqlude install                                                       # Install library
  inqlude list                                                          # List libraries
  inqlude release_kde_frameworks <release_date> <version>               # Create release manifests for KDE frameworks release
  inqlude review <repo>                                                 # Review pull requests on GitHub. Use 'username:branch' as repo parameter.
  inqlude show <library_name>                                           # Show library details
  inqlude system_scan                                                   # Scan system for installed Qt libraries and create manifests
  inqlude uninstall                                                     # Uninstall library
  inqlude verify [filename]                                             # Verify all manifests or specific file if filename is given
  inqlude view -o, --output-dir=OUTPUT_DIR                              # Create view

  [--version], [--no-version]    # Show version
  [--offline], [--no-offline]    # Work offline
  [--manifest-dir=MANIFEST_DIR]  # Manifest directory

3. Website - One place to find and publish Qt libraries. 

Current state of inqlude

  1. Format for meta data in a JSON file: Meta data includes name, release date, release version, information about licence, status of library, available platforms, available packages etc.
  2. In terms of tooling, inqlude has a command line tool which is also called 'inqlude' and it has a number of functions to list, install, remove, show libraries. 
  3. Website is also there running at Libraries are categorized as stable libraries, development versions, unreleased and all. Each library has a page where you can see all the data. You can find details about where to get that library and how to get that library. You can also add comments and discuss about the libraries. There are links to download additional information as well. 

Technologies used

Random set of technologies are used in inqlude. 

- JSON for meta data format.
- Ruby to process data, create website.
- Website is static HTML with some CSS integrated with Google and Disqus to provide search and discussions.
- Hosted in a git repository so that it is easy to provide new patches for libraries or find what was already there.  

This is an open source project, so all infrastructure are free software. You can find them easily in Github and KDE repository in order to download, modify and test it. It is an open platform, so that it is not limited to specific libraries or make some libraries prominent than others. Hence it is open for everybody. This is run by KDE community.

One final message given by Cornelius during this talk is, if you know about a new Qt library or any new release of a Qt library, talk to him or write an email to mailing list where you can discuss things further. If you want to contribute, he would be welcoming patches as well. 


Post a Comment