Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Thomas Calmant Newsgroups: comp.lang.python.announce Subject: [ANN] iPOPO 0.7.0 Date: Sun, 31 Dec 2017 07:27:26 -0800 (PST) Lines: 87 Approved: python-announce-list@python.org Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Trace: news.uni-berlin.de WreQs1kczHc/nN1cSJMQKQ89egS5bt7qgoZ5S2eqC46w== X-Orig-Path: m31no4614203qtf.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Return-Path: X-Original-To: python-announce@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.005 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'url:pypi': 0.03; 'remaining': 0.04; 'inspired': 0.07; 'removes': 0.07; 'subject:ANN': 0.07; 'url-ip:192.30.253.112/32': 0.07; 'url- ip:192.30.253.113/32': 0.07; 'url-ip:192.30.253/24': 0.07; 'url:github': 0.07; 'imported': 0.09; 'stale': 0.09; 'url- ip:162.242.198.235/32': 0.09; 'url-ip:162.242.198/24': 0.09; 'url- ip:162.242/16': 0.09; 'url:issues': 0.09; 'python': 0.10; 'url- ip:192.30/16': 0.12; 'behavior,': 0.16; 'component:': 0.16; 'github:': 0.16; 'received:four.schnuerpel.eu': 0.16; 'received:schnuerpel.eu': 0.16; 'stops.': 0.16; 'apache': 0.17; 'code.': 0.18; 'url-ip:151.101.0.223/32': 0.19; 'url- ip:151.101.128.223/32': 0.19; 'url-ip:151.101.192.223/32': 0.19; 'url-ip:151.101.64.223/32': 0.19; 'url-ip:151.101.0/24': 0.20; 'url-ip:151.101.128/24': 0.20; 'url-ip:151.101.192/24': 0.20; 'url-ip:151.101.64/24': 0.20; 'server,': 0.21; 'module': 0.21; '(in': 0.22; 'subject:] ': 0.25; 'header:User-Agent:1': 0.25; '2.6': 0.26; 'decorators': 0.26; 'exists': 0.26; 'component': 0.28; 'handling': 0.28; 'url:io': 0.28; 'class.': 0.29; 'url- ip:151.101/16': 0.29; 'url-ip:151/8': 0.29; 'announce': 0.30; 'java': 0.30; "i'm": 0.30; 'code': 0.31; '(which': 0.32; 'pass': 0.32; 'received:google.com': 0.32; '2.0': 0.33; 'references': 0.33; 'start,': 0.33; 'but': 0.33; 'registered': 0.34; 'context.': 0.34; 'url:en': 0.34; 'another': 0.35; 'class': 0.35; 'url:python': 0.35; 'source': 0.35; 'list': 0.36; 'could': 0.36; 'two': 0.36; 'skip:= 10': 0.36; 'received:209.85': 0.36; 'instead': 0.37; 'url:org': 0.38; 'remote': 0.38; 'subject:[': 0.38; 'admin': 0.38; 'separate': 0.38; 'supported': 0.38; 'received:209': 0.39; 'method': 0.39; 'thanks': 0.39; 'instance': 0.39; 'specified': 0.39; 'url-ip:192/8': 0.39; 'skip:d 20': 0.40; 'what': 0.40; 'based': 0.60; 'your': 0.61; 'developed': 0.61; 'look': 0.61; 'free': 0.62; 'more': 0.62; 'lists:': 0.63; 'information': 0.63; 'skip:o 10': 0.63; 'services,': 0.66; 'url:index': 0.66; 'url:group': 0.67; 'services': 0.67; 'thomas': 0.68; 'to:addr:comp-lang-python-announce': 0.68; 'license': 0.71; 'scott': 0.71; 'services.': 0.72; 'avoid': 0.73; 'fact,': 0.75; 'to:addr:moderators.isc.org': 0.76; 'updated,': 0.84; 'received:209.85.220.197': 0.91; 'received:mail- qk0-f197.google.com': 0.91; 'shell,': 0.91; 'stop,': 0.91; 'service:': 0.93; 'anymore,': 0.95; 'fun!': 0.95 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:path:newsgroups:date:complaints-to :injection-info:nntp-posting-host:user-agent:mime-version:message-id :subject:from:injection-date:to; bh=4WBHw9dNwxfys6vxw6+CHBeiZELlQEEkswYt6lnvxyg=; b=ZFy2GIfxY7zeCp0kqUeWQzujzx0jC4jQibz2G6i1mng1K7iFpnBXUypD6dGez/6yuc kRGNgjGreyx15RkzaCu9SH6e4FN+dOpyYd4Nxkp4CDJD6uxBXWPfOiHUFhmO75D0F0La HuRVuODjkEUBY/po1nbPVgFB+L3/lAXOLjBftLzrs40oaXJOOWhEWfdDUoAcMiWy2c9P gfPsBaZdX5YNY1JzRUNAz2Q8QgMZBdl2bryHe/bM+irtyur7ZTVO5QDoIDLKU8ov8eRV sLGZtnej4PQPvEznV6n9CW4Zs4qXv1xdKX0ClQPjGDiMhBeSsiMGP9hUMfUFQ4Ig/Jqk dhmw== X-Gm-Message-State: AKGB3mJGzXu7jG+kkN8SGFBQzt2YV64Mu7JgKGlDPNIPN2uLZdJCB3DJ 4Hz/bmOiCZkJtybBxOyCOYD66qJp1pd3YC0iRJ4= X-Google-Smtp-Source: ACJfBosNGj39ZmvtXWRHFGuPLChczE3c3pcQR5CcJ2kVbqNF8/YbseOMYNEfsVvPX/tlkmHLvMuDTnPjnR3XDbMh8xrvYx+xCM1q X-Received: by 10.55.32.141 with SMTP id g135mr12427433qkg.23.1514734046857; Sun, 31 Dec 2017 07:27:26 -0800 (PST) X-Received: by 10.31.170.1 with SMTP id t1mr3801130vke.4.1514734046619; Sun, 31 Dec 2017 07:27:26 -0800 (PST) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=212.195.82.137; posting-account=JO-sqAoAAABSfteYEZSAacjeIt3GIjrB User-Agent: G2/1.0 Injection-Date: Sun, 31 Dec 2017 15:27:26 +0000 X-Mailman-Approved-At: Fri, 05 Jan 2018 08:23:33 -0500 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: Xref: csiph.com comp.lang.python.announce:2727 Hello, I'm happy to announce that iPOPO v0.7.0 has just been released! What is iPOPO ============= iPOPO is a Service-Oriented Component Model (SOCM) based on Pelix, a dynamic service platform. Both are inspired on two popular Java technologies for the development of long-lived applications: the iPOJO component model and the OSGi Service Platform. iPOPO enables to conceive long-running and modular IT services. It is based on the concepts specified by OSGi: - Bundle: a Python module imported using Pelix and associated to a context. A bundle has a life-cycle (install, start, updated, stop, uninstall) - Service: a Python object registered in a service registry, associated to a specification and to properties. - Component: the instance of a class described/manipulated by iPOPO decorators Components are bound together by the specification(s) of the service(s) they provide. The required services are injected into components by iPOPO. For more information about those concepts, see https://ipopo.readthedocs.io/en/latest/refcards/index.html#refcards iPOPO provides many services out-of-the-box, like an HTTP server, local and remote shell, remote services... iPOPO is released under the terms of Apache Software License 2.0 What's new in 0.7.0 =================== This version mainly adds: * Prototype Service Factories * Automatic release of consumed services when a bundle stops. This will avoid some stale references when using service factories. WARNING: This is an important change in behavior, which might break some projects which use stale references to pass information from one bundle version to another during an update (which is a bad way to do it). * Deprecation handling of the imp package * Added a Framework.delete() method to avoid the need to know about the FrameworkFactory class. This release also removes some Python 2.6 compatibility code that was remaining and which is not necessary anymore, as this version of Python is not supported anymore by iPOPO. Due to the behavior change caused by the automatic release of consumed services, this release is version 0.7.0 instead of 0.6.6, as it could break some existing code. What's coming in 2018 ===================== 2018 will be the year when iPOPO will get its Web Console. It will be developed as a separate project (in fact, the project already exists but is staled). This might also be the year when Remote Service Admin will be added to iPOPO, thanks to Scott Lewis! See https://github.com/tcalmant/ipopo/issues/60 for more information. You can take a look at the documentation at https://ipopo.readthedocs.io/ iPOPO is available on PyPI: https://pypi.python.org/pypi/iPOPO Source is available on GitHub: https://github.com/tcalmant/ipopo Feel free to send feedback on your experience of Pelix/iPOPO, via the mailing lists: User list : http://groups.google.com/group/ipopo-users Development list : http://groups.google.com/group/ipopo-dev Have fun! and Happy New Year! Thomas