How to overwrite pypi package when doing upload from command line? - distutils

I want to automate the upload process bug in some cases the python setup.py upload fails because pypi server already have the save version uploaded.
How can I force it to upload, from the script (i know I can remove the old variant using the web interface).

A late answer, but: it seems everybody agrees you can't overwrite existing pypi uploads, or re-upload a fixed version after you delete a broken version. However, it seems actually possible and officially supported: "build numbers" are a feature that nobody has ever used or remembers they exist, but that seems to work, at least for me.
The trick is to rename the files in the following pattern:
mypackage-0.31.0-py2.py3-none-any.whl
mypackage-0.31.0-1-py2.py3-none-any.whl
mypackage-0.31.0-2-py2.py3-none-any.whl
The "-1" or "-2" are build numbers. If pip finds all these files for the same release, it will pick the one with the highest build number. It also seems to work if it finds only a single file with a non-zero build number, so you can use that after you deleted the original.
(This is very quickly mentioned in the documentation at https://www.python.org/dev/peps/pep-0427/#file-name-convention but I wouldn't have guessed its use without Daniel Holth pointing it out to me. Thanks Daniel!)
I have no idea why the internet contains so many people convinced it can't be done. I myself only learned about it yesterday and thought I should try to pass on that information.
Insert here the usual warning about not to abuse that feature. A typical example for when I think you should use this is after one of the wheels was badly built and you need to replace it with a correctly-built wheel from the same sources

Here's an actual answer, not just me adding more pontification in the comments. Found this thread:
https://www.reddit.com/r/Python/comments/35xr2q/howto_overwrite_package_when_reupload_to_pypi/
That refers to this:
http://comments.gmane.org/gmane.comp.python.distutils.devel/22739
Saying it can't be done.
Also note the comment in the reddit thread about reading semver.org and incrementing the micro version for patches.

Related

Remove corrupt Win32_Product-Entry

I've got a service which I can't completely uninstall. Some time ago, I uninstalled it but now I realize it wasn't fully removed. The setup was created using InstallShield LE. I realized I still have it on my machine when I tried to install a new version.
If I try to install the new version it says that the old version can't be removed. I was curious because in "Programs and Features"-window there is no entry of the application. However, I checked WMI Win32_Product class and in fact, there is the entry of the application.
I tried to remove it using the uninstall()-method with PowerShell. I used a snippet which you can find here: https://msdn.microsoft.com/de-de/library/aa393941(v=vs.85).aspx
It didn't work as well, but at least I got a nice error message saying I can't remove it because the current state of the object is invalid (WMIMethodException).
I realized the InstallState-Column of the entry has the value 1 (advertised). I have no idea what it means and I can't find another possible solution which I could try. Unfortunately in the event log there aren't any entries that would help me. Maybe some of you know a possible way of removing it, thanks in advance.
If uninstallation finished in an incomplete state you'll most likely have to scrub the remainder from the Registry yourself. Check the subkeys of {HKCU|HKLM}\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall for remaining artifacts. On 64-bit systems also check the Wow6432Node counterparts.

Accidentally published CompositeC1 with precompile on

I accidentally published Composite C1 from Visual Studio with "Precompile during publishing" when I first set it up and have now come to realize that several plugins do not work with precompile turned on. Unfortunately I have no idea how to reverse this. I've tried several things to no avail. I usually end up with a 500.0 error. If I go to the admin interface everything is working properly, and I can even preview the pages, but from the customer side all I get is a 500.0 error.
Of course I could republish from the Visual Studio project I have, but that project has the default template on it. I've tried copying what appears to be changed on the server to the original project but I end up with a 500 error. I've tried removing all the precompiled stuff on the server but I end up with a 500 error. I'm pretty lost.
At this point I'm willing to do anything. Is there a doc explaining how to copy the content to a newly downloaded copy, kind of like an upgrade doc but "side-grading"? I am using the most current version at the time of writing this 4.2 Update 1
Thank you
Solved use the PackageCreator suggested by wysocki's answer. It was not exactly straight forward to create the package. The errors can very cryptic at times. So here are some of the issues I encountered and how I got past them:
wysocki was correct to suggesting starting with a bare bones installation even though my original project was started with the Venus theme. I tried both ways.
I encountered issues with the MasterLayout and the Page Template Features which are currently not supported by the PackageCreator, although they may be supported in future versions. The solution was to add the missing elements to the fresh C1 project from the original C1 installation in the App_Data/PageTemplates and App_Data/PageTemplateFeatures folders.
A few times I ran into an issue where I added the same page or function twice to the PackageCreator. This was obviously my fault, but it should be mentioned that you can add the same site element twice which throws and error on import. Make sure you are careful to only getting one of each when creating the package to be exported.
If you are getting and error and it uses and Id like "4061397b-ee9e-4512-984d-f2b2d41eb654" I've found that it was very helpful to extract the zip file you are trying to import and then search the extracted folders for that Id. The lines with the Id usually have more information on them that will help you to identify exactly what content page or whatever the error is being generated from.
If you are using installed packages in your project like SimpleSearch for example, make sure you don't add it's functions to the PackageCreator. Install them separately.
I had an issue where I somehow had an element in the Data section that didn't have a "type". The error simply "The type cannot be empty". This was obviously tough to find so I suppose the lesson is, less is more. If you think your project might have a few elements that are unnecessary, don't add them at first and see if the project you import them into complains about missing them. It's much easier to troubleshoot missing elements than it is to figure out which element is causing the issue that you really didn't need.
Is there a doc explaining how to copy the content to a newly downloaded copy
You can try and export content / templates / anything else related to a "package" via Composite.Tools.PackageCreator.
Its latest version gives you quite a lot of flexibility in what you can export ("package") - please its user manual.
Once the package is made and downloaded, you can go on and install it on a new website. If you export / import a lot of content / templates etc, it makes sense to have a "Bare Bones" site as the new one.
All the starter sites like "Neptune", "Venus" are installed as a bunch of packages in specific order during Composite C1's initial setup.

Thunderbird removes any attempt to make an extension

I might be a complete idiot, so please bear with me if I am.
I've been attempting to create an extension for Thunderbird.
I quickly googled for an official documentation and followed it as closely as I could. This way, I ended up with a simple result to test, which would, according to the documentation, work.
So I opened up Thunderbird, nothing.
I closed it again and went to see what I did wrong. However, Thunderbird had completely removed the folder I had.
I did this a few times more with the same result.
This is what my folder setup looked like:
%APPDATA%/Thunderbird/Profiles/[profile name]/extensions/
foobar#foo.bar/
install.rdf
chrome.manifest
chrome/
content/
foobar.xul
foobar.js
locale/
defaults/
preferences/
The contents of these files were, at my last attempt, literally copy/pasted from the documentation, only with altered filenames(both in code and in actual files), extension ID(both in code and the folder name), and maximum version tag.
What exactly am I missing here?
I absolutely agree with using proxy files for addon development. But if you followed the guide mentioned by Jonathan Protzenko, your structure would look more like this:
%APPDATA%\Thunderbird\profiles\[profile name]\extensions\
foobar#foo.bar
SomeDrive:\path\to\some\place\
foobar_dev_directory\
install.rdf
...
chrome\
i.e, the development directory is not located inside your profile. Instead, consider the proxy file
%APPDATA%\Thunderbird\profiles\[profile name]\extensions\foobar#foo.bar
SomeDrive:\path\to\some\place\foobar_dev_directory\
You must only enter the second line, and never forget the trailing \ as mentioned here (3, Note).
Also you should uninstall the addon (if you had one with the same id created and installed before). When you start tb the first time thereafter, you will be asked to allow exernal addons to be installed or something similar.
I got things working this way, hope this helps.
A second guess might be the following: you're obviously working on windows. Are you viewing files always with extension in windows explorer? If not or not sure, check the following:
In Windows Explorer under Organize \ Folder Options \ View deactivate Hide extensions for known file types.
Further, try using a proxy file named differently, especially without the top-level domain. I suspect this could be misinterpreted by windows as an extension. You should call your proxy file thus foobar#foobar.

WebApp ignores patched perl pm file

I never really came in touch with perl before, so I really hope, this is a real newbie question and I can solve the problem pretty quick...
We've one perl based web application installed on a windows 2003 server environment. The installed version contains a bug and I know where to apply the patch. Basically: I have carefully changed two lines in one of the web apps pm files.
To my surprise, the file change is ignored and I still get the same error messages with references to the old version of the file - clearly identifiable by the line numbers.
I've cleared the browser caches, restarted the web application (including apache) - no luck.
Now I think/hope that this is some kind of perl feature, but I even don't know enough of that language to ask google the right questions. One tutorial said, that perl is an interpreted language and that changes to source files are effective immediately. This isn't true for my site...
Are there some more caches/files I have to touch or delete in order to make my changes effective?
Are you sure your Perl is actually using the latest version of said pm file? There is no other version somewhere else included which is getting used?
Take a look at #INC
Step through your programming using a debugger
Sprinkle warnings around the code and see if it gets called.
Problem solved and the solution was outside perl - thanks for your patience.
The web application contained some javascript / css caching. After
deleting the caches (js-chache, css-cache)
clearing the browser cache
restarting Internet Explorer (!)
it started working again. Don't ask me why...

Matlab and MrVista

I'm new to MATLAB and mrVista.
I'm running Matlab Version 7.8.0.347 (R2009a) 32-bit(win32) from February 12, 2009
OS is Windows 7 Professional
I downloaded the most recent MrVista_hourly.zip and extracted it into my C:\Program_Files_(x86)\MATLAB directory.
I think I need to run mrvInstall, but when I do, I get the following:
EDU>> mrvInstall
Checking VISATSOFT installation.
Windows, 32-bit, installation
Checking and possibly installing .NET framework.
This can take several minutes
Checking for visualization library (.dll) files.
You are missing msvcp70.dll.
So, I'm completely lost at this point. Do I just need to download msvcp70.dll from the net? If so, is there a safe place to download it from? If there's some other way I'm supposed to get mrVista to work from MATLAB, instead of mrvInstall, please let me know that.
Thanks in advance for your help.
EDIT: I've downloaded and installed the dll and still isn't working. I'll go ask on Super User. Thanks for trying to help anyway.
EDIT2: before asking on superuser, I tried once more to solve it myself. Turns out, under the File -> Set Path you have to Add_With_Subfolders the specific vistasoft folder. (Even though I'd already added with subfolders the parent directory where vistasoft lives, that wasn't good enough.) So, once I added the path, and made sure I was in the directory where my data lives, I was able to run the initial command from the tutorial:
mrVista inplane
It opens up very nicely now. No compiles or installs or other commands were actually necessary. Methinks I'm going to go edit a wiki now so no one else has this problem.
There's a pretty comprehensive discussion of Visual C++ runtime DLLs here
Whoever built the file that uses msvcp70.dll (and msvcr70.dll) presumably had Visual Studio 2002 and the right to redistribute that file.
You're probably not going to get much help beyond that because I'm a MatLab user and I have no idea what mrVista is. You've provided no link, no explanation, nothing that someone could use to help you.
See this page on MrVista Wiki:
http://white.stanford.edu/newlm/index.php/Troubleshooting#MESH
There is information on this dll and where to get it from.
I guess "serverfault" is VERY badly named if it's the go-to place for things that have zero to do with servers;-). Maybe the complaint shd actually point to superuser.com?
Me, I've researched the top google hits for this DLL, the very top one seems to be on "dll-files.com" which has no bad reports I can see and is rated green/safe by mcafee, so that's where I would risk downloading it from. Weird that I can't find it on a MSFT site, though.