Path: csiph.com!usenet.pasdenom.info!news.redatomik.org!newsfeed.xs4all.nl!newsfeed1a.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.011 X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'python.': 0.02; 'python,': 0.02; 'subject:Python': 0.06; 'lately': 0.07; 'generators': 0.09; 'setup.py': 0.09; 'subject:build': 0.09; 'subject:create': 0.09; 'testing,': 0.09; 'python': 0.11; 'creates': 0.14; 'command:': 0.16; 'layout,': 0.16; 'picks': 0.16; 'subject: \n ': 0.16; 'projects,': 0.19; 'stefan': 0.19; 'seems': 0.21; 'creating': 0.23; 'config': 0.24; 'sorry,': 0.24; 'posts': 0.26; 'point': 0.28; 'testing': 0.29; '[1]': 0.29; 'ideal': 0.29; 'room': 0.29; '[2]': 0.30; 'mix': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'getting': 0.31; 'probably': 0.32; 'worked': 0.33; 'running': 0.33; 'test': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'really': 0.36; 'installing': 0.36; 'view,': 0.36; 'url:org': 0.36; 'project': 0.37; 'tasks': 0.38; 'to:addr:python- list': 0.38; 'little': 0.38; 'to:addr:python.org': 0.39; 'subject:"': 0.60; 'new': 0.61; 'more': 0.64; 'different': 0.65; 'url:0': 0.67; 'header:Reply-To:1': 0.67; 'reply-to:no real name:2**0': 0.71; 'hey,': 0.75; 'reply-to:addr:gmail.com': 0.80; 'commands.': 0.84; 'improvement': 0.84; 'perspective,': 0.84; 'subject:tool': 0.84; 'this...': 0.84; 'url:v1': 0.84; 'convinced': 0.93 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:from:date:message-id:subject:to:content-type; bh=yho3101hYQUNvpOwXKa07bEtr/7N8Jvw5T0oyhDqICk=; b=Z1TmawHKY/UX6zAdshbePT/m9BMIt8JwiGM/k0icC8iiwuTIdJLDbMrryiPJTSLa/Z Xf2kFvDtBlzUFuEcA9508BCo02i69RCGOvLJ6BVx2f36+Mh4zZwf3p7//bHGk4FfhC0v Prl+ng4pajyqONqhBekRGOdAD/mZTdqsJMZ/lkRv+uPX7VRzeZP62ydUr7VK/asa83Dv krWKCvP4sdPhmbHok3qOOi7iTxHWZpdoe6W6wW2CH7snByh2C/CPmfmnnr619nLs7TZn exkZe51RplU396EDXdxNXp1vNlSdDSIVhzS4HZZ0XIPNgebU1lHnVPCidBXPwm3yG767 otNA== X-Received: by 10.194.200.166 with SMTP id jt6mr38343075wjc.66.1427471379028; Fri, 27 Mar 2015 08:49:39 -0700 (PDT) MIME-Version: 1.0 Reply-To: stefan.otte@gmail.com From: Stefan Otte Date: Fri, 27 Mar 2015 16:49:18 +0100 Subject: Python counterpart of Elixir's build tool Mix - or: why is it so cumbersome to "create packages" To: python-list@python.org Content-Type: text/plain; charset=UTF-8 X-Mailman-Approved-At: Fri, 27 Mar 2015 16:56:48 +0100 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.19 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 42 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1427471809 news.xs4all.nl 2881 [2001:888:2000:d::a6]:46007 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:88168 Hey, lately I was playing with elixir [1] and I found Mix [2], elixir's "build/task tool", to be amazing. Creating new projects, compiling, installing dependencies, running and testing -- really easy! For what I'm concerned mix convinced me just for the "mix new projectname" command: * creating README.md * creating .gitignore * creating mix.exs * creating config * creating config/config.exs * creating lib * creating lib/kv.ex * creating test * creating test/test_helper.exs * creating test/kv_test.exs It creates a reasonable skeleton which is the base for all the other mix commands. Yes, yes, there are skeleton generators for python, lots and lots of blog posts that describe the ideal project layout, setup.py for installing and testing, also lots and lots of blog posts about this... You can do all of the tasks with python. Mix just seems to be more "coherent". Sorry, for the little rant! Mix just made me reevaluate my python workflow again and I think there is room for improvement [4]. So what is you take on it? What is your workflow? Do you have any tips? Best, Stefan [1] http://elixir-lang.org/ [2] http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html [3] http://elixir-lang.org/docs/v1.0/mix/ [4] I'm not really sorry for the rant. Getting a fresh perspective, a different point of view, is probably the main reason why one picks up new languages....and it worked this time :)