Showing posts with label Qt libraries. Show all posts
Showing posts with label Qt libraries. Show all posts

Finding new releases


Finding new releases of Qt libraries can be quite challenging. Some libraries have no releases, whereas other libraries are updated and new versions are released often. Later type of libraries have stable releases which come with some release process, testing, release notes and announcement.

The libraries which have not released anything yet are marked as unstable in Inqlude and they only use the generic manifest. The libraries which have specific releases consist of a release manifest for each release.

In most cases, home page of the project announces the releases. Some projects have releases indicated in their version controlling system too. All of this would depend on the project.

Listed below are some ways to find new releases of Qt libraries.

1. Project home page

There are some projects that announce releases on their home page. For eg: Qtav library announces all the releases under 'News' section at its home page.

2. API documentations

Some projects have API documentations where you can find the new releases. For eg: Qoauth library has api docs for each release.

3. GitHub

Projects which use GitHub display their releases in the releases page of GitHub project. For eg: Injeqt library has all the releases shown at its releases page.

4. GitLab

There are projects which use GitLab. For eg: You can find the latest version of Qdatacube library on its GitLab Project page. Other than that, GitLab 8.2 now supports releases as in GitHub.

5. SourceForge

There are some projects on SourceForge that have a releases page. Some have patches. You could easily find the latest stable release there. For eg: QScintilla library has its latest release indicated in the title of its documentation page at SourceForge.

6. Bitbucket

There are several projects on Bitbucket as well. You could find the latest stable release in Tagssection at Overview page. For eg: qjsonrpc library has its releases defined under different tags at its Overview page.

7. Forums

There are some projects that announce their releases on different types of forums like Google group, Qt forum or any kind of project specific forums. For eg: ff7tk announces its releases onQhimm.com Forums.

Links to the above sources of a specific Qt library can be found at the relevant web page of the library in Inqlude. Otherwise you can find a JSON file available at http://inqlude.org/inqlude-all.json, where you can find all the links to above sources of Qt libraries.

Once you find a new release of a Qt library, you are always welcome to contribute a new patch of the manifest file for inqlude-data library archive.

Using Inqlude Command Line Tool


Inqlude command line tool is a basic component of Inqlude project. Inqlude comes as a Ruby gem. It can be easily installed and it provides a command line interface to handle Qt libraries in a similar way as Ruby gems. There are commands to install libraries, list available libraries and installed libraries, and more. They are as follows.

1. Create new or updated manifest
  inqlude create <manifest_name> [version] [release_date]        
2. Create manifests from git checkout of KDE frameworks module
  inqlude create_kde_frameworks <frameworks-git-checkout> <output_dir> 

3. Download source code archive
  inqlude download                                                      
4. Information about how to get involved
  inqlude get_involved                                                  
5. Describe available commands or one specific command
  inqlude help [COMMAND] 
     
6.  Install library                                         
  inqlude install  
      
7. List libraries                                               
  inqlude list                                                          
8. Create release manifests for KDE frameworks release
  inqlude release_kde_frameworks <release_date> <version>               
9. Review pull requests on GitHub. Use 'username:branch' as repo parameter
  inqlude review <repo>                                                 
10. Show library details
  inqlude show <library_name>                                           
11. Scan system for installed Qt libraries and create manifests
  inqlude system_scan    

12. Uninstall library                                              
  inqlude uninstall                                                     
13. Verify all manifests or specific file if filename is given
  inqlude verify [filename]                                             
14. Create view
  inqlude view -o, --output-dir=OUTPUT_DIR                              
Libraries are described by manifest files, which are maintained in a separate git repository. Inqlude integrates with this git repository and uses it as the list of available gems. This repository can be found at https://github.com/cornelius/inqlude-data.

There are 3 basic ways to get Qt libraries. 

1. Using the web site at https://inqlude.org. There you can find the information about available libraries, and then you can get the libraries using the provided links. This is the recommended way for now.


2. Using the command line client from package. This client makes it easy to get the libraries you need with just a few commands, without having to know URLs, or how libraries are packaged. There are 2 ways to get the command line client. They are as follows.
         - Download its sources from download.kde.org. Link is here.
         - Otherwise, clone the repository. Use command line command as follows.

nanduni@nanduni-TECRA-M11:~/myproject$ gem install inqlude

3. Using the command line client written in Ruby

This can also download libraries. But this is mostly aimed at maintaining the inqlude data. This is available as a Ruby gem. 
See if you have rubygems installed in your machine. If so, you can simply use the following command to install inqlude. Otherwise see rubygems.org to get Rubygems. 
nanduni@nanduni-TECRA-M11:~/myproject$ gem install inqlude
Now that you have command line client set, you can use inqlude commands to get libraries. To get the set of available libraries, use the following command. 
nanduni@nanduni-TECRA-M11:~/myproject$ inqlude list -r

You can easily install a library with following command.
nanduni@nanduni-TECRA-M11:~/myproject$ inqlude install <library_name>

You are able to view the set of installed libraries using this command.
nanduni@nanduni-TECRA-M11:~/myproject$ inqlude list

This is how I experimented the functionality of Inqlude command line client.

References


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.

Problem

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. 

Solution

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.

Benefits

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
Commands:
  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

Options:
  [--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 https://inqlude.org. 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 inqlude@kde.org mailing list where you can discuss things further. If you want to contribute, he would be welcoming patches as well.