desktop / desktop

Focus on what matters instead of fighting with Git.
https://desktop.github.com
MIT License
19.85k stars 9.45k forks source link

32-bit Windows support? #1214

Closed joshaber closed 7 years ago

joshaber commented 7 years ago

@megbird is seeing this error when she tries to install:

screen_shot_2017-04-14_at_11 53 19_am_360

The setup log:

2017-04-12 12:41:55> Program: Starting Squirrel Updater: --install .
2017-04-12 12:41:55> Program: Starting install, writing to C:\Users\megbird\AppData\Local\SquirrelTemp
2017-04-12 12:41:55> Program: About to install to: C:\Users\megbird\AppData\Local\desktop
2017-04-12 12:41:55> CheckForUpdateImpl: Couldn't write out staging user ID, this user probably shouldn't get beta anything: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\megbird\AppData\Local\desktop\packages\.betaId'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
   at System.IO.File.InternalWriteAllText(String path, String contents, Encoding encoding, Boolean checkHost)
   at System.IO.File.WriteAllText(String path, String contents, Encoding encoding)
   at Squirrel.UpdateManager.CheckForUpdateImpl.getOrCreateStagedUserId()
2017-04-12 12:41:55> CheckForUpdateImpl: Failed to load local releases, starting from scratch: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\megbird\AppData\Local\desktop\packages\RELEASES'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at Squirrel.Utility.LoadLocalReleases(String localReleaseFile)
   at Squirrel.UpdateManager.CheckForUpdateImpl.<CheckForUpdate>d__2.MoveNext()
2017-04-12 12:41:55> CheckForUpdateImpl: Reading RELEASES file from C:\Users\megbird\AppData\Local\SquirrelTemp
2017-04-12 12:41:55> CheckForUpdateImpl: First run or local directory is corrupt, starting from scratch
2017-04-12 12:41:55> ApplyReleasesImpl: Writing files to app directory: C:\Users\megbird\AppData\Local\desktop\app-0.0.31
2017-04-12 12:41:56> LogHost: Rigging execution stub for lib/net45/GitHub Desktop_ExecutionStub.exe to C:\Users\megbird\AppData\Local\desktop\GitHub Desktop.exe
2017-04-12 12:42:17> LogHost: Rigging execution stub for lib/net45/resources/app/node_modules/dugite/git/mingw64/libexec/git-core/github.authentication_ExecutionStub.exe to C:\Users\megbird\AppData\Local\desktop\app-0.0.31\resources\app\node_modules\dugite\git\mingw64\libexec\github.authentication.exe
2017-04-12 12:42:50> ApplyReleasesImpl: Squirrel Enabled Apps: [C:\Users\megbird\AppData\Local\desktop\app-0.0.31\GitHub Desktop.exe]
2017-04-12 12:42:50> ApplyReleasesImpl: Couldn't run Squirrel hook, continuing: C:\Users\megbird\AppData\Local\desktop\app-0.0.31\GitHub Desktop.exe: System.ComponentModel.Win32Exception (0x80004005): The specified executable is not a valid application for this OS platform.
   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Squirrel.Utility.<InvokeProcessAsync>d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass10_0.<<invokePostInstall>b__0>d.MoveNext()
2017-04-12 12:42:50> IEnableLogger: Failed to invoke post-install: System.ComponentModel.Win32Exception (0x80004005): The specified executable is not a valid application for this OS platform.
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<>c.<invokePostInstall>b__10_6(ProcessStartInfo info)
   at Squirrel.EnumerableExtensions.ForEach[TSource](IEnumerable`1 source, Action`1 onNext)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<invokePostInstall>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Utility.<LogIfThrows>d__37.MoveNext()
2017-04-12 12:42:51> Unhandled exception: System.AggregateException: One or more errors occurred. ---> System.ComponentModel.Win32Exception: The specified executable is not a valid application for this OS platform.
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<>c.<invokePostInstall>b__10_6(ProcessStartInfo info)
   at Squirrel.EnumerableExtensions.ForEach[TSource](IEnumerable`1 source, Action`1 onNext)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<invokePostInstall>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Utility.<LogIfThrows>d__37.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<ApplyReleases>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.UpdateManager.<FullInstall>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Squirrel.Update.Program.<Install>d__4.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at Squirrel.Update.Program.executeCommandLine(String[] args)
   at Squirrel.Update.Program.main(String[] args)
---> (Inner Exception #0) System.ComponentModel.Win32Exception (0x80004005): The specified executable is not a valid application for this OS platform.
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<>c.<invokePostInstall>b__10_6(ProcessStartInfo info)
   at Squirrel.EnumerableExtensions.ForEach[TSource](IEnumerable`1 source, Action`1 onNext)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<invokePostInstall>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Utility.<LogIfThrows>d__37.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<ApplyReleases>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.UpdateManager.<FullInstall>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Squirrel.Update.Program.<Install>d__4.MoveNext()<---

2017-04-14 11:51:36> Program: Starting Squirrel Updater: --install .
2017-04-14 11:51:37> Program: Starting install, writing to C:\Users\megbird\AppData\Local\SquirrelTemp
2017-04-14 11:51:37> Program: About to install to: C:\Users\megbird\AppData\Local\desktop
2017-04-14 11:51:37> Program: Install path C:\Users\megbird\AppData\Local\desktop already exists, burning it to the ground
2017-04-14 11:51:46> CheckForUpdateImpl: Couldn't write out staging user ID, this user probably shouldn't get beta anything: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\megbird\AppData\Local\desktop\packages\.betaId'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
   at System.IO.File.InternalWriteAllText(String path, String contents, Encoding encoding, Boolean checkHost)
   at System.IO.File.WriteAllText(String path, String contents, Encoding encoding)
   at Squirrel.UpdateManager.CheckForUpdateImpl.getOrCreateStagedUserId()
2017-04-14 11:51:46> CheckForUpdateImpl: Failed to load local releases, starting from scratch: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\megbird\AppData\Local\desktop\packages\RELEASES'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at Squirrel.Utility.LoadLocalReleases(String localReleaseFile)
   at Squirrel.UpdateManager.CheckForUpdateImpl.<CheckForUpdate>d__2.MoveNext()
2017-04-14 11:51:46> CheckForUpdateImpl: Reading RELEASES file from C:\Users\megbird\AppData\Local\SquirrelTemp
2017-04-14 11:51:46> CheckForUpdateImpl: First run or local directory is corrupt, starting from scratch
2017-04-14 11:51:46> ApplyReleasesImpl: Writing files to app directory: C:\Users\megbird\AppData\Local\desktop\app-0.0.33
2017-04-14 11:51:47> LogHost: Rigging execution stub for lib/net45/GitHub Desktop_ExecutionStub.exe to C:\Users\megbird\AppData\Local\desktop\GitHub Desktop.exe
2017-04-14 11:52:18> LogHost: Rigging execution stub for lib/net45/resources/app/node_modules/dugite/git/mingw64/libexec/git-core/GitHub.Authentication_ExecutionStub.exe to C:\Users\megbird\AppData\Local\desktop\app-0.0.33\resources\app\node_modules\dugite\git\mingw64\libexec\GitHub.Authentication.exe
2017-04-14 11:53:10> ApplyReleasesImpl: Squirrel Enabled Apps: [C:\Users\megbird\AppData\Local\desktop\app-0.0.33\GitHub Desktop.exe]
2017-04-14 11:53:11> ApplyReleasesImpl: Couldn't run Squirrel hook, continuing: C:\Users\megbird\AppData\Local\desktop\app-0.0.33\GitHub Desktop.exe: System.ComponentModel.Win32Exception (0x80004005): The specified executable is not a valid application for this OS platform.
   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Squirrel.Utility.<InvokeProcessAsync>d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass10_0.<<invokePostInstall>b__0>d.MoveNext()
2017-04-14 11:53:11> IEnableLogger: Failed to invoke post-install: System.ComponentModel.Win32Exception (0x80004005): The specified executable is not a valid application for this OS platform.
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<>c.<invokePostInstall>b__10_6(ProcessStartInfo info)
   at Squirrel.EnumerableExtensions.ForEach[TSource](IEnumerable`1 source, Action`1 onNext)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<invokePostInstall>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Utility.<LogIfThrows>d__37.MoveNext()
2017-04-14 11:53:11> Unhandled exception: System.AggregateException: One or more errors occurred. ---> System.ComponentModel.Win32Exception: The specified executable is not a valid application for this OS platform.
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<>c.<invokePostInstall>b__10_6(ProcessStartInfo info)
   at Squirrel.EnumerableExtensions.ForEach[TSource](IEnumerable`1 source, Action`1 onNext)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<invokePostInstall>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Utility.<LogIfThrows>d__37.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<ApplyReleases>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.UpdateManager.<FullInstall>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Squirrel.Update.Program.<Install>d__4.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at Squirrel.Update.Program.executeCommandLine(String[] args)
   at Squirrel.Update.Program.main(String[] args)
---> (Inner Exception #0) System.ComponentModel.Win32Exception (0x80004005): The specified executable is not a valid application for this OS platform.
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<>c.<invokePostInstall>b__10_6(ProcessStartInfo info)
   at Squirrel.EnumerableExtensions.ForEach[TSource](IEnumerable`1 source, Action`1 onNext)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<invokePostInstall>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Utility.<LogIfThrows>d__37.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Squirrel.UpdateManager.ApplyReleasesImpl.<ApplyReleases>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.UpdateManager.<FullInstall>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Squirrel.Update.Program.<Install>d__4.MoveNext()<---

The message that sticks out to me is:

The specified executable is not a valid application for this OS platform.

From a bit of googling, it looks like this is usually caused by trying to install a 64-bit app on a 32-bit OS.

So I guess the outstanding questions are:

  1. Can we do something to give users a better error message?
  2. Should make a 32-bit version?
shiftkey commented 7 years ago

Can we do something to give users a better error message?

Not without a fair bit of work - this is inside Squirrel which is then encountering that Win32 message.

Should make a 32-bit version?

This means we'd also need to start packaging dugite-native as 32-bit, which then means more testing and packaging shenanigans.

I had a quick look to see if we were tracking our 32/64-bit OS percentage but couldn't spot it in graphite. Another interesting benchmark would be to see the variation in recent User-Agent activity on dotcom (encompassing users not necessarily running the Classic app) and how that's split between 32-bit and 64-bit.

For example, this is Chrome on Windows 10 64-bit: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36

joshaber commented 7 years ago

Alright it sounds like this is out of scope for beta then. We can make a more informed choice about 32-bit support when we see what demand is like.

niik commented 7 years ago

Alright it sounds like this is out of scope for beta then. We can make a more informed choice about 32-bit support when we see what demand is like.

FWIW it looks like we're currently holding pretty steady at 3% of our users on 32-bit only operating systems on Windows over the last month. (Sorry for the shitty graph)

image

Can we do something to give users a better error message?

It's a really shitty message :/

If we decide do not ship a 32-bit version, and assuming that we can't change how squirrel works we should change the parts that we do control.

We could make it harder to accidentally download the client from a 32 bit OS. If we could do platform detection on the new TNG site we should show a message that the client isn't available on 32 bit and maybe show a tiny link to download the 64 bit version in case people need to get it onto a usb or something.

alefragnani commented 7 years ago

Sad to finally discover how much deprecated my computer is. Hope you support 32bits on upcoming releases.

shiftkey commented 7 years ago

@alefragnani which version of Windows are you running?

alefragnani commented 7 years ago

I'm using a Windows 10 Pro - 32bits.

I'm limited to this version because my computer is a MacBook Early 2008 (polycarbonate), and Electron platform does not support OS X 10.7 Lion (the last supported OS X on this computer). This forced me to focus on Windows via Boot Camp (which only supports 32bits).

Yes, I know it's an ancient computer, but it still fulfill my needs 😄

shiftkey commented 7 years ago

Oh gosh, that's very retro!

alrz commented 7 years ago

it still fulfill my needs

sounds like it doesn't anymore 😃

rlabrecque commented 7 years ago

Can you guys ship a 32bit windows version that is unsupported? I do something similar for outdated platforms. Basically never intentionally breaking anything but if something regresses then it's up to those users to report it. It's kind of the best of both worlds. The support burden is usually pretty minor, and it keeps that 3% happy enough. We only run into one unsupported version regression every few months.

shiftkey commented 7 years ago

Can you guys ship a 32bit windows version that is unsupported?

Not currently, as dugite-native - needed for everything Git - is 64-bit only - and getting it working for 32-bit Windows requires additional work to package bits that don't currently exist.

rlabrecque commented 7 years ago

Ah yeah.

I also will say that as someone that routinely uses a computer on the pref level of the aforementioned macbook, electron applications aren't fun on it in general. :/

alefragnani commented 7 years ago

The not fun part, in my case, is that it only supports 4Gb of RAM, but other than that, works flawlessly, even running Delphi (my native language).

I use, and contribute with some extensions, to Atom and VSCode, and both also works perfectly fine. So, it was strange to see this app being 64bit only, since Electron works on both. But looking at the comments about dugite-native, and the 3% user base, I understand the limitation.

If you ever release a 32bit compatible version, and I still have this computer up and running, I will give a try. Otherwise, let's wait for the brand new computer that I'm postponing to buy :smile:

BitFros7y commented 7 years ago

Well im on Windows 7 32bit 2GB, and i have same problem. Irony is that i downloaded from: https://central.github.com/deployments/desktop/desktop/latest/win32

As it clearly says its 32bit, and that link is found on desktop.github.com

Should i make my peace and accept that i wont be able to use github for windows on my toaster or is there still some hope?

shiftkey commented 7 years ago

Irony is that i downloaded from: https://central.github.com/deployments/desktop/desktop/latest/win32

This isn't some cruel trick - it's the platform value that Node reports for Windows: https://nodejs.org/api/os.html#os_os_platform

pcrazyc commented 7 years ago

http://win10portal.com/github/ you can install in win32 with this steup file, however i think it's an old version

j-f1 commented 7 years ago

@pcrazyc That’s the old (non-Electron) GitHub Desktop version.

joshaber commented 7 years ago

We don't currently have any plans to support a 32-bit version. We can revisit this later if we get enough interest, but 64-bit is THE FUTURE.

navodian commented 7 years ago

My 32-bit system stopping me to install GitHub desktop. Is there any chance if we are getting 32-bit version in future?

joshaber commented 7 years ago

@navodian Chances are pretty low, unfortunately. 32-bit is an increasingly small segment of users.

hananurrehman commented 7 years ago

All programs on the internet provide 32 bit support except Github

oscdows commented 7 years ago

all programs 32 bit except chrome

oscdows commented 7 years ago

do anyone know how to get 64 bit win-7 on win-vista 32 bit for free that will be amazing

Menelion commented 7 years ago

32-bit Windows is not a rare thing, sorry. 32-bit Linux maybe, but not 32-bit Windows.
Electron does provide the ability to support 32-bit systems (see, for instance, the new Skype Preview, Slack for Windows or bunch of other apps). And yes, this is ridiculous: I've been using Git shell for years, and now I learn I can't use it anymore. Nice.

j-f1 commented 7 years ago

@Menelion Have you seen https://git-for-windows.github.io/, which provides a git shell for Windows?

j-f1 commented 7 years ago

Also see this graph from above:

~3% usage

(blue is 32-bit)

Menelion commented 7 years ago

@j-f1, thanks! Yes, as I ultimately need only Git Shell, this one plus posh-git is a perfect solution to me. But still, 3%... seems unbelievable, I thought the number was far larger.

TonyBenedetti commented 6 years ago

I know that I'm late to this party, but (and isn't there always a BUT?) ... but 3% of 24 million developers is still 720,000 of us poor souls who for various (valid & invalid) reasons are stuck with using 32 bit operating systems. That's nearly the population of the 18th largest city in the US (Charlotte, NC; 731,424) ... sigh

sis-c commented 6 years ago

Also late to the party, but I teach a university course where we just started using GitHub Desktop and some of my students have 32bit systems and can't afford a system "of the future". So, just a vote for considering that access to such tools could benefit those trying to improve their economic status through mastering technology.

Also, it's curious that the link to download is "https://central.github.com/deployments/desktop/desktop/latest/win32"

ceefour commented 6 years ago

@sis-c Indeed, our problem as well :(

I appreciate the move to 64bit but deprecating 32 bit version is a bit premature. 3% of several millions are still several millions ......

gastonea commented 6 years ago

Josh, please, let's make a 32 bit release!! Which is effort that demand it? Really? I was left without be able to work at this PC... the domain's admin not allow me upgrade the SO. Regards, and have you nice day

j-f1 commented 6 years ago

@gastonea As stated above, dugite-native — which we use to access Git — doesn’t support 32-bit computers. Feel free to open a PR to start work on adding 32-bit support!

maxbed commented 6 years ago

22.01.2018. 18.27, "Jed Fox" notifications@github.com је написао/ла:

@gastonea https://github.com/gastonea As stated above, dugite-native https://github.com/desktop/dugite-native — which we use to access Git — doesn’t support 32-bit computers. Feel free to open a PR to start work on adding 32-bit support!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/desktop/desktop/issues/1214#issuecomment-359500485, or mute the thread https://github.com/notifications/unsubscribe-auth/AghpNd7jz19guA6p5VQkLXT5KQZSWHtIks5tNMUHgaJpZM4M99Iz .

Menelion commented 6 years ago

To those of you who, like me, are on 32 bit systems and do not need GUI, use plain Posh-Git. I am not affiliated with it, just had been using it in Github Desktop and found oud that I don't need anything more than that. The readme is plain and clear, if you follow the instructions, you'll be all set in like five minutes. You'll have autocomplete and nice status indication in your Powershell command line.
I'll reiterate: as the GUI was not accessible for screen reader users, I hadn't been using it anyway, so the Posh-git solution fits me well.

j-f1 commented 6 years ago

as the GUI was not accessible for screen reader users

Could you open a new issue about this? We’d love to hear about where we can improve accessibility-wise.

EDIT: unless this is an issue with the old app

Menelion commented 6 years ago

@j-f1, I will, but it seems I had already opened one issue when the new Desktop was still in beta. the thing is that Electron is not.. oh well... I can't say it is unable to become accessible, but usability-wise it is very far from being the best solution. But I'll dig in as long as I get a 64-bit OS :).

j35u54n6u10 commented 6 years ago

I have 32-bit windows 7 and I have the same problem, but if github can not be the support for 32-bit operating systems users with these systems would be able to develop the 32-bit github ... it's just my opinion. :D

hananurrehman commented 6 years ago

Use git bash and do your commits & pushes via command line

gastonea commented 6 years ago

Yeah... You're right... Let's back to the 80's :D

j35u54n6u10 commented 6 years ago

we have to join forces :D

JakeQZ commented 6 years ago

Disappointing not to be able to use this having recently upgraded from a 64-bit laptop to a 32-bit desktop. It is the only Windows software I have ever come across that is only available for 64-bit. Now I will have to find and get used to a different workflow.

j35u54n6u10 commented 6 years ago

the truth is that it is very sad not to be able to have github 32bits haora will have to get used to a different workflow

Arioshoma commented 6 years ago

Still waiting for the 32bit support... Even if just 3% of users are using 32bit operating systems still it's more than 720,000 users! Thousands of users!!! not just "small" amount of users. So I'm asking you once again for the 32bit support. All program, almost all of them, support the 32bit operating systems. be one of them!

j-f1 commented 6 years ago

As stated above, dugite-native — which we use to access Git — doesn’t support 32-bit computers. Feel free to open a PR to start work on adding 32-bit support!

shiftkey commented 6 years ago

I've opened https://github.com/desktop/dugite-native/issues/86 to track the upstream dependency, and until that's been resolved with a contribution I'm going to lock this discussion rather than continue to go around in circles.