Opened 3 years ago

Closed 2 months ago

#21046 closed Bug (wontfix)

django-admin.py always creates files with Unix line endings

Reported by: Florian Sening Owned by: nobody
Component: Core (Management commands) Version: 1.5
Severity: Normal Keywords:
Cc: Ramiro Morales Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Versions prior Django 1.5 created files with machine dependent line endings. With Django 1.5 and above the line endings suddenly changed to always Unix (LF). You can simply check this if you just try startproject and then have a look at the project files.
I could not find anything related to this but I consider this a bug because generated files should be like every other file on your machine - in the native newline format of your platform.

Attachments (1)

21046-1.diff (1.8 KB) - added by Claude Paroz 2 years ago.

Download all attachments as: .zip

Change History (11)

comment:1 Changed 3 years ago by Claude Paroz

It might be a regression added during fix of #19397 (c9a47fb379cab4c0fe9be27c9924236e75327bd0). I do not have access to non-Unix machines, so I'm not able to test this, but it might be worth testing if only using binary mode when the file is detected as a non text file could solve this issue.

comment:2 Changed 3 years ago by Tim Graham

Triage Stage: UnreviewedAccepted

comment:3 Changed 3 years ago by Florian Sening

I think I got it. The fix for #18091 in 3afb5916b215c79e36408b729c9516bc435f5cb7 introduced this bug. Beside that another bug #19397 was introduced which later was fixed in baae4b818778180fedfcfcfc7aa77acfb9b237fb. I still have to figure out how to fix this without breaking the other patches. I'll try your suggestion.

Changed 2 years ago by Claude Paroz

Attachment: 21046-1.diff added

comment:4 Changed 2 years ago by Claude Paroz

I've just attached the patch to test on a non-Unix machine and which might solve this bug.

comment:5 Changed 2 months ago by Claude Paroz

Has patch: set

comment:6 Changed 2 months ago by Tim Graham

I don't know how important this is these days. I think version control programs like Git usually normalize line endings anyway.

Another consideration (I think) is that this will apply only to Python files that the template commands are rewriting, not to any other text-based files.

Does makemigrations (and any other management commands that write files) already have this behavior?

Maybe there are good reasons to make the change, but I just wanted to ask about these points.

comment:7 Changed 2 months ago by Claude Paroz

Right, I think Windows users should speak now.

Last edited 2 months ago by Tim Graham (previous) (diff)

comment:8 Changed 2 months ago by Tim Graham

Cc: Ramiro Morales added

Ramiro, any input?

comment:9 Changed 2 months ago by Tim Graham

I asked for feedback on django-users.

comment:10 Changed 2 months ago by Tim Graham

Resolution: wontfix
Status: newclosed

Feedback from Mike Dewhirst:

I haven't had any such problems. I develop on Windows and deploy on Linux. Editors and repos look after all that. If I did have a problem I would consider it my own responsibility to choose a different set of tools to resolve it. Not a Django issue IMO.

Note: See TracTickets for help on using tickets.
Back to Top