Tag Info

Hot answers tagged

40

Build an SSCCE (short, self contained, correct example). If the bug disappears when you remove some of the extra details for the SSCCE, then you found it. Otherwise you will have an SSCCE that you give or post that ideally eliminates the code that you are concerned about sharing.


29

Depends entirely on the installation technology, company developing the software and the whim of the person using the terms. Generally though, updates stay within a product version (for example, hotfixes), while if you want to move to a later version, you would upgrade. So you might install an update (hotfix) for Office 2007, or you might upgrade to Office ...


28

Two things: Staging environment, as similar to the live environment where you do test deployments. Ample testing of this environment after deployment. Automated and non-automated. There are other things that can be done. I suggest reading the 5 part blog series about automated deployment by Troy Hunt. The tooling he uses is MS stack specific, but the ...


25

There are a few obvious arguments against this. What happens if you leave. Is all this information carefully documented, or is it mostly in your head. Automated scripts are a much better place for someone else to take over from. Everyone makes mistakes. There will come a time when the person doing the deployment is tired, not paying attention whatever. ...


23

In layman's words: Not all users use all of a company's apps Different users have different needs Why force an user to buy a full package when he/she needs only a part ? (Ok, Google apps are free, but other software maker's aren't.) Having those apps separate makes it possible to be updated separately and, most importantly, sold separately. The fact that ...


20

The best practice is to have an approximation of the production stack on your local developer machine. This typically includes the database, web server and your customized code. Do all of your development there. Never edit code on a production server. When your business stakeholders are ready for the functionality to go live, push your code from your local ...


20

An installer always makes sense, if deployment requires anything more complicated than copying the relevant file(s) to some folder and running the EXE. If there are additional steps that need to be taken to set the product up properly, there's two ways to go about it. You can write out a list for someone to follow. Humans being humans, someone's bound to ...


18

You can get the best of best worlds: peace of mind with process verification and the reliability of automation. Script the deployment. Then, go through and manually verify that processes are started, files removed, etc. In other words, write your own QA script just to verify that automated steps 1 - X actually occurred.


17

For better understanding of something that is complicated, just make it more simplier. In this example, just split the word into atoms, like these: Update - UP_DATE - make it up to date; Upgrade - UP_GRADE - move it to the upper (or next) grade (or level).


16

Disputes about easily-observable facts are actually quite easy to resolve: just observe the facts. If I say "there's a tree with purple wood outside my house," anyone able to come to my house can verify the truth or falsehood of my statement for themselves. If they're complaining that FuncA used to be in the product and used to work in an earlier version ...


15

Like Shaun said, there isn't really a standard. Some companies have better versioning practices than others (I've dealt with vendors who skip major version numbers, and others that are stuck on the same x.y several releases later). Having said that, the inventor of Gravatars and cofounder of GitHub (Tom Preston-Werner) authored a document for 'Semantic ...


15

I'm not a big fan of them, but several reasons come to mind: It allows them to more easily deliver the most recent build to the customer. It allows them to speed up the download by only delivering to the user the pieces they want to actually install. Huge downloads via HTTP often stall out. A download manager allows for a smaller initial download, and ...


15

This is not an issue that can be dealt with on facts - if you try, you will loose credibility. First, accept that the software is "broken" - as it it does not do what the users want it to do. Now, accept that the users have a right to have the software do what they want it to do - thats what the software is therefore. So what we have is defective software ...


13

I wonder, why no one mentioned Version control -- which is one of the most important ways to save you from trouble while updating/upgrading. First, your deployment should be just a clone of the stable branch on your repository. Everything including config files, SQL files, install/update scripts MUST be version controlled. Second, you need to have "some ...


13

The Go project from ThoughtWorks is a similar tool to Octopus that provides Continuous Delivery. Puppet is another system that handles automated deployment


13

While what you have done is sure to be a good thing, the project manager has to worry about a number of things: testing - what if you break something. Either something in the home page, or some other unintended consequence? The system needs to be retested. Depending on how far your company goes, this could be a large cost. Scheduling user downtime. May be ...


12

I think the key here is: why do you think that you can't script the verification process? My deploy scripts don't just push archives and restart services. They print out lots of color-coded information during each step of the deploy, and provide me a summary of events at the end. It lets me know that processes are up and running, that the homepage is ...


12

I can say that Octopus Deploy + TeamCity has literally changed our life. We now can't imagine life without them. Octopus is rock solid and does exactly what we need. We have about 15 different application components and about 40 EC2 servers, in three tiers (dev, qa, production). We do CI/testing with TeamCity, which spits out NuGet packages; then Octopus ...


11

Wyatt takes off his programmer hat and puts on his Director of IT hat If this is an internal line of business application then you only need aim at one environment -- said business. I would call the head of IT and ask him how they would like to manage deployment. IT departments have been dealing with this for a while so they might have a strong preference ...


10

Have you consdiered SQL Compact? SQL Server Compact 3.5 SP2 is a free, easy-to-use embedded database engine that lets developers build robust Windows Desktop and mobile applications that run on all Windows platforms including Windows XP, Vista, Pocket PC, and Smartphone. http://www.microsoft.com/sqlserver/2005/en/us/compact.aspx


10

MySQL is Free Software licensed under the GPL, and it changing owners isn't going to affect that (that's pretty much the entire point of the GPL). Where you need to pay is if you're distributing MySQL as part of a binary that you expect people to install, but don't want to license the entire binary under the GPL. Because of the way copyleft licenses work, ...


9

I wouldn't do it, especially if you're working for someone else, who likely wouldn't appreciate you handing potential competitors source code. But even if it's your own code, it misses the point of Stack Overflow, which is to have an index of questions and answers for everyone to read and use. So you post enough to ask your question, people answer the ...


9

Web Deploy is very good for building a package which you can deploy repeatedly across different environments, so that by the time you deploy to production, you know the process works. This can easily be scripted in a batch or Powershell script, so it can be integrated with a Jenkins build and the Promoted Builds plugin (one-click deployment). It can also ...


8

Yes, it is legal. The page you linked to says the following: The F# redistributable package can be added to a deployment project to create a packaged, installable F# application that installs the F# runtime components when an application is installed on a client computer. You can also check the redist.txt file in [program files]\Microsoft ...


8

I have never been a fan of including existing projects that belong to other solutions. There are too many variables where making an edit to that project for 1 solution completely breaks something in another solution. Then by fixing that problem you end up breaking the original solution. Lather, rinse, repeat. When this kind of dependency leaks into multiple ...


8

Do you also run your production machines with remote debugging, and you manually stepping through them? Building a proper script is identical to writing a program. All of the issues you have indicate things that it will need to watch for and check against. If something goes wrong, it should go through proper rollback procedures, and send you a message. ...


8

Packaging You would probably want to play to the normal expectations for each platform involved. For example, Linux software is usually distributed through package managers, or as a package (RPM file, DEB file), or in the most basic form, an archive like tar, or a compressed tar. In the Linux world, though, since every distribution has very different ...


8

Windows Installer applications are widely used to install internal business applications in environments using Windows. You should also ask yourself whether over the application's life it will likely ever need to be updated, patched, repaired, or cleanly removed from user's systems. In many cases the answer is "yes" - in which case having a properly ...


8

Deployed means that it's been shoved onto and works on a server or other machine (say an embedded chipset) somewhere. Released means that that machine and the application(s) on it has been made available to the public. So "release" would be the better term.



Only top voted, non community-wiki answers of a minimum length are eligible