#6568 closed enhancement (fixed)
[with patch, positive review] Migrate Notebook to Jinja
Reported by: | timdumol | Owned by: | timdumol |
---|---|---|---|
Priority: | major | Milestone: | sage-4.1.2 |
Component: | notebook | Keywords: | notebook, jinja, templating engine |
Cc: | jason | Merged in: | Sage 4.1.2.alpha0 |
Authors: | Tim Dumol | Reviewers: | William Stein, Minh Van Nguyen |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
Jinja is a templating engine based on Django's. It's already included in Sage due to the inclusion of Sphinx. Migrating from HTML to templates should make it easier to make future changes to the code, and make things easier to read.
Additionally, this will give us the option of switching to a web framework such as Django.
Attachments (21)
Change History (60)
comment:1 Changed 12 years ago by
- Status changed from new to assigned
- Summary changed from Migrate Notebook to Jinja to [with patch, not ready for review] Migrate Notebook to Jinja
comment:2 Changed 12 years ago by
- Priority changed from major to minor
comment:3 follow-up: ↓ 4 Changed 12 years ago by
comment:4 in reply to: ↑ 3 Changed 12 years ago by
Replying to mvngu:
timdumol: There should be a proper username on the patch. At the moment I see this
# User deadlyx@localhost.localdomainThe username should not be a leet handle or anything like that. In order to properly credit contributors to Sage, the username should following this format:
# User Full Name <email@somewhere.com>You can set a proper username in the file
~/.hgrc
with something like[ui] username = Full Name <email@somewhere.com>I say "should", not "must". If you don't want to, then at least fill in the "Author(s):" field with your full name. That way, it makes it easy to credit you.
Thank you very much for noticing that. I didn't realize that my local username was included in the patch. I'll fix it asap.
comment:5 Changed 12 years ago by
- Keywords changed from notebook, jinja,templating engine to notebook, jinja, templating engine
- Summary changed from [with patch, not ready for review] Migrate Notebook to Jinja to [with patch, needs review, unfinished] Migrate Notebook to Jinja
comment:6 Changed 12 years ago by
- Summary changed from [with patch, needs review, unfinished] Migrate Notebook to Jinja to [with patch, needs review] Migrate Notebook to Jinja
comment:7 Changed 12 years ago by
- Summary changed from [with patch, needs review] Migrate Notebook to Jinja to [with patch, needs work] Migrate Notebook to Jinja
Hi,
I get 8 rejects when trying to apply the first patch to a 100% clean build of sage-4.1:
wstein@sage:~/build/sage-4.1$ ./sage ---------------------------------------------------------------------- | Sage Version 4.1, Release Date: 2009-07-09 | | Type notebook() for the GUI, and license() for information. | ---------------------------------------------------------------------- Loading Sage library. Current Mercurial branch is: ref3 sage: hg_sage.apply('http://trac.sagemath.org/sage_trac/attachment/ticket/6568/12659.patch') Attempting to load remote file: http://trac.sagemath.org/sage_trac/raw-attachment/ticket/6568/12659.patch Loading: [.........] cd "/scratch/wstein/build/sage-4.1/devel/sage" && hg status /scratch/wstein/build/sage-4.1/local/lib/python2.6/site-packages/sage/misc/hg.py:240: DeprecationWarning: os.popen3 is deprecated. Use the subprocess module. x = os.popen3(s) cd "/scratch/wstein/build/sage-4.1/devel/sage" && hg status cd "/scratch/wstein/build/sage-4.1/devel/sage" && hg import "/scratch/wstein/sage/temp/sage.math.washington.edu/5378/tmp_1.patch" applying /scratch/wstein/sage/temp/sage.math.washington.edu/5378/tmp_1.patch patching file sage/server/notebook/notebook.py Hunk #1 FAILED at 23 Hunk #2 FAILED at 32 Hunk #3 FAILED at 1355 Hunk #4 FAILED at 1402 Hunk #5 FAILED at 1506 Hunk #6 FAILED at 1704 Hunk #7 FAILED at 1903 Hunk #8 FAILED at 2162 8 out of 8 hunks FAILED -- saving rejects to file sage/server/notebook/notebook.py.rej file sage/server/notebook/templates/debug_window.html already exists 1 out of 1 hunks FAILED -- saving rejects to file sage/server/notebook/templates/debug_window.html.rej file sage/server/notebook/templates/guest_top_bar_and_worksheet.html already exists 1 out of 1 hunks FAILED -- saving rejects to file sage/server/notebook/templates/guest_top_bar_and_worksheet.html.rej file sage/server/notebook/templates/head.html already exists 1 out of 1 hunks FAILED -- saving rejects to file sage/server/notebook/templates/head.html.rej file sage/server/notebook/templates/top_bar_and_worksheet.html already exists 1 out of 1 hunks FAILED -- saving rejects to file sage/server/notebook/templates/top_bar_and_worksheet.html.rej file sage/server/notebook/templates/user_controls.tmpl already exists 1 out of 1 hunks FAILED -- saving rejects to file sage/server/notebook/templates/user_controls.tmpl.rej file sage/server/notebook/templates/worksheet_body.html already exists 1 out of 1 hunks FAILED -- saving rejects to file sage/server/notebook/templates/worksheet_body.html.rej file sage/server/notebook/templates/worksheet_topbar.tmpl already exists 1 out of 1 hunks FAILED -- saving rejects to file sage/server/notebook/templates/worksheet_topbar.tmpl.rej abort: patch failed to apply
What should I do? What are these patches against exactly?
comment:8 Changed 12 years ago by
@was: It seems something went wrong with the patch exporting. I cleaned up my hg history and combined a few changesets to make the patches easier to apply. The new patches are _12659.patch and _12660.patch. Sorry for the inconvenience.
The new patches are against r12658. The old ones were as well, but I don't know what happened to them.
comment:9 Changed 12 years ago by
- Summary changed from [with patch, needs work] Migrate Notebook to Jinja to [with patch, needs review] Migrate Notebook to Jinja
comment:10 Changed 12 years ago by
I can't apply/review this patch immediately, but it seems that each change appears twice in the latest version. For example,
$ grep "sage/server/notebook/templates/notebook/worksheet.html" _12660.patch diff -r d3be9e0b1090 -r a60e86f38be7 sage/server/notebook/templates/notebook/worksheet.html +++ b/sage/server/notebook/templates/notebook/worksheet.html Sun Jul 26 14:08:17 2009 +0800 diff -r d3be9e0b1090 -r 1335daa5adcd sage/server/notebook/templates/notebook/worksheet.html +++ b/sage/server/notebook/templates/notebook/worksheet.html Tue Jul 28 21:33:54 2009 +0800
Also, should "reviisons" appear in the patch? Sorry, if I'm wrong.
comment:11 Changed 12 years ago by
The transition to templates is much needed and appreciated. Thanks very much for doing this. Is it possible to break up the changes into a few separate pieces, possibly logically independent? This might make it easier to review them and to get feedback on and track down any changes in the behavior of the notebook. On the other hand, it may be better to do it all at once. Thoughts?
comment:12 Changed 12 years ago by
@mpatel
Thanks for the feedback. Yeah, that's a typo. Thanks for catching it.
It seems that the patches are messed up. I've fixed them up with hg histedit
. I don't see any repeated changes in the patches anymore. Please tell me if there are anymore problems.
Breaking them up seems like a good idea. There are quite a lot of functions though, so there'll be a lot of patches. It may be inconvenient to try them all. Anyways, I'll work on them asap.
Changed 12 years ago by
Migrated worksheet.py to Jinja. Added doctests. Removed html_slide_controls. Incremental patch from the first patch.
comment:13 Changed 12 years ago by
#4808 appears to be a duplicate of this ticket. When one is merged, please consider closing the other.
comment:14 Changed 12 years ago by
From some testing in Firefox 3.5 on Linux, with both new patches applied:
- Live doc worksheets do not load their stylesheets.
- Published worksheets are now [partially] editable.
- The "re-publish" and "stop publishing" buttons do not work, apparently.
- The print representation of a worksheet is missing cell boundaries.
Also, a number of doctests in notebook.py
and worksheet.py
failed with sage -t -long -option -verbose -randorder
. For worksheet.py
, there are mostly just small changes in expected HTML output. I think some of the randomized failures are pre-existing:
sage -t -long -optional -randorder=87873 "4.1.1.rc1/devel/sage-main/sage/server/notebook/worksheet.py" ********************************************************************** File "/home/apps/sage-4.1.1.rc1/devel/sage-main/sage/server/notebook/worksheet.py", line 178: sage: sage.server.notebook.worksheet.one_prestarted_sage(None,None) Expected: Sage Got nothing ********************************************************************** File "/home/apps/sage-4.1.1.rc1/devel/sage-main/sage/server/notebook/worksheet.py", line 148: sage: sage.server.notebook.worksheet._a_sage Expected nothing Got: Sage ********************************************************************** 2 items had failures: 1 of 6 in __main__.example_1270084472 1 of 5 in __main__.example_1700749147 ***Test Failed*** 2 failures. For whitespace errors, see the file /home/apps/sage/tmp/.doctest_worksheet.py [7.9 s] exit code: 1024 ---------------------------------------------------------------------- The following tests failed: sage -t -long -optional -randorder=87873 "4.1.1.rc1/devel/sage-main/sage/server/notebook/worksheet.py" Total time for all tests: 7.9 seconds
For notebook.py
, there are other error types.
comment:15 Changed 12 years ago by
Also,
$ grep reviisons sage-trac-6568.* sage-trac-6568.2.patch:+<a class="listcontrol" href="reviisons?rev={{ rev }}&action=publis">Publish this one</a>
comment:16 follow-up: ↓ 17 Changed 12 years ago by
- Summary changed from [with patch, needs review] Migrate Notebook to Jinja to [with patch, needs work] Migrate Notebook to Jinja
I've checked the doctests out on a fresh install (r12659). They also fail, so I assume they're pre-existing. I'm not too familiar with the Notebook code, but I'll see if I can fix them up. Meanwhile, perhaps they should be put on a new ticket.
I'm working on the rest of the problems now.
comment:17 in reply to: ↑ 16 Changed 12 years ago by
Replying to timdumol:
I've checked the doctests out on a fresh install (r12659). They also fail, so I assume they're pre-existing. I'm not too familiar with the Notebook code, but I'll see if I can fix them up. Meanwhile, perhaps they should be put on a new ticket.
I'm working on the rest of the problems now.
I'm sorry, I meant r12658.
comment:18 Changed 12 years ago by
- Summary changed from [with patch, needs work] Migrate Notebook to Jinja to [with patch, needs review] Migrate Notebook to Jinja
I've fixed all the outlined bugs, and one more. The doctests all seem to pass, except for the pre-existing failures that you pointed out.
comment:19 Changed 12 years ago by
- Cc jason added
- Priority changed from minor to major
- Summary changed from [with patch, needs review] Migrate Notebook to Jinja to [with patch, needs work] Migrate Notebook to Jinja
- I think clicking "No" in reply to "Do you want to publish this worksheet" unpublishes the worksheet, but it does not return the sheet to interactive mode.
- jsMath is not included in printed worksheets. The page itself is missing the title.
- How does the
morecss
block work? Can we now avoidtwist.py
's "hack" altogether?
- Should, e.g.,
server/notebook/templates/doc.html
still be there?
If you're not already using the Mercurial Queues extension, it may be worth trying. hg qrefresh
can be very helpful.
I've added Jason Grout to the CC: list, since my checks may not cover the range of notebook usage patterns. Perhaps we can get other volunteers?
comment:20 Changed 12 years ago by
- The
morecss
inserts the code in the block after the first css include. It should be possible to avoid it by creating another template specifically for documentation pages. - Probably not. I'll work on cleaning up the file tree asap.
- I'll work on the rest of the bugs.
I've actually been using histedit to combine changesets. Although I'm guessing patch queues are more idiomatic.
I'm pretty new to the Sage community, so I don't know.
comment:21 Changed 12 years ago by
The official site of Mercurial contains many tutorials on using Mercurial itself. In particular, I recommend that you go through its tutorial for beginners. After that, you might want to look through a section on using Mercurial queues to manage patches. Anyway, please tell me if you have problems with using Mercurial or its queue extension.
comment:22 Changed 12 years ago by
Also, you might look at http://wiki.sagemath.org/MercurialQueues for a quick hands-on introduction to queues.
comment:23 Changed 12 years ago by
Actually, I meant "I don't know." as in I don't know about the possibility of finding other volunteers. I'm familiar with patch queues. Thanks for the help.
Changed 12 years ago by
Removed hack in twist.py for documentation page creation. Removed unused files.
Changed 12 years ago by
Cumulative patches from sage-trac-6568.2.patch to sage-trac-6568.6.patch. Incremental patch from sage-trac-6568.1.patch.
comment:24 Changed 12 years ago by
- Summary changed from [with patch, needs work] Migrate Notebook to Jinja to [with patch, needs review] Migrate Notebook to Jinja
I've fixed all the bugs pointed out, and the kludge/"hack" was removed. I've also cleaned up the templates file tree. Thanks for noting them.
comment:25 Changed 12 years ago by
I've attached a solo patch comprised of Tim Dumol's six recent patches. (I did not use the cumulative patch.) I've ignored a few small rejected hunks from the sixth patch --- in notebook.py
, twist.py
, and base.html
--- since it appears that the rejected changes are applied by an earlier patch. Of course, all credit for the hard work of migrating the notebook to Jinja should go to Tim.
I haven't tested the latest changes extensively, but I've noticed no unwelcome surprises.
comment:26 Changed 12 years ago by
Version 2 (of the uber-patch) should fix introspection. It also
- Simplifies
Notebook.plain_text_worksheet_html()
. - Indents
Notebook.html_debug_window()
's docstring.
There's still some HTML generation in
Notebook.object_list_html()
,Notebook.list_window_javascript()
,Notebook.html_settings()
.Worksheet.html_ratings_into()
but these methods are unused or minor. Of course, there's markup in interact.py
, etc.
Should we make a separate ticket for moving css.py
's stylesheets to templates/
? Rebasing other tickets against this one may be easier than the opposite.
My review is positive, though someone else should check the most recent changes. It would be useful to get feedback from other testers.
comment:27 Changed 12 years ago by
The patch seems quite large enough as is without including the sheets from css.py
. I think another ticket would be more suitable.
Actually, I hope to clean the HTML up and replace the table layout with CSS once this gets committed, so it may be nice to put those changes into a new ticket as well.
comment:28 Changed 12 years ago by
Sounds great. I'll steer clear. In the near term, I'll try to simplify the jsMath-related code for #4714, along the lines of #6673.
I should add that v2 of the uni-patch also fixes the "User Management" page at, e.g., http://localhost:8000/users
(for admins). The problem was a misuse of template.template()
in twist.py
.
comment:29 Changed 12 years ago by
- Milestone changed from sage-wishlist to sage-4.1.2
comment:30 follow-up: ↓ 31 Changed 12 years ago by
- Summary changed from [with patch, needs review] Migrate Notebook to Jinja to [with patch, positive review] Migrate Notebook to Jinja
REFEREE REPORT:
The Sphinx docstrings that you added, which are very good, have a formatting problem, namely below there needs to be a newline before each - (i.e., lots of whitespace):
1315 INPUT: 1316 - ``username`` - a string 1317 - ``worksheet`` - an instance of Worksheet 1318 1319 OUTPUT: 1320 - a string containing the HTML
See this screenshot: http://wstein.org/home/wstein/tmp/jinja1.png which illustrates how the ReST is messed up. This isn't a big deal, since I don't think this code is even in the reference manual yet... But it would be good to go through and fix.
All doctests pass, and *using* the notebook after applying the patches seems to work fine -- I can't find any visible difference.
I give this a positive review. Proper Sphinxing of docs can go in a future patch, and be done throughout the notebook server code.
comment:31 in reply to: ↑ 30 Changed 12 years ago by
- Summary changed from [with patch, positive review] Migrate Notebook to Jinja to [with patch, positive review] Migrate Notebook to JinjaFixed docstrings added by patch #6568 in `notebook.py` and `worksheet.py`
I've created a new ticket for notebook documentation at #6840. The docstrings fixes are there.
comment:32 Changed 12 years ago by
In part, the patch "v2" at #5360 is an attempt to include some server/
docstrings in the reference manual.
comment:33 follow-up: ↓ 35 Changed 12 years ago by
- Merged in set to Sage 4.1.2.alpha0
- Resolution set to fixed
- Reviewers set to William Stein
- Status changed from assigned to closed
The patch trac_6568-jinja_migration_v2.patch
results in over 20 warnings when building the reference manual:
WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html:15: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html:20: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_beforepublish_window:14: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_beforepublish_window:19: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_debug_window:8: (WARNING/2) Literal block expected; none found. WARNING: <autodoc>:0: (ERROR/3) Unexpected indentation. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.DIR:1: (ERROR/3) Unexpected indentation. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_debug_window:15: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_doc:15: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_doc:17: (WARNING/2) Definition list ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_download_or_delete_datafile:17: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_download_or_delete_datafile:25: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_plain_text_window:18: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_plain_text_window:24: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_share:16: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_share:24: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_upload_data_window:13: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_upload_data_window:18: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_worksheet_revision_list:16: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_worksheet_revision_list:23: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_worksheet_settings:13: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.html_worksheet_settings:20: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.worksheet_html:16: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/notebook.py:docstring of sage.server.notebook.notebook.Notebook.worksheet_html:23: (WARNING/2) Block quote ends without a blank line; unexpected unindent. WARNING: /scratch/mvngu/release/sage-4.1.1/local/lib/python2.6/site-packages/sage/server/notebook/worksheet.py:docstring of sage.server.notebook.worksheet.Worksheet.html_menu:10: (WARNING/2) Block quote ends without a blank line; unexpected unindent.
When I ran the test suite with the patch, I received a timed out error:
sage -t -long devel/sage-main/sage/interfaces/ecm.py *** *** Error: TIMED OUT! PROCESS KILLED! *** *** *** *** Error: TIMED OUT! *** *** *** *** Error: TIMED OUT! *** *** [1800.1 s]
This error has nothing to do with the patch. It might be due to sage.math being too busy or its system resources (probably RAM) nearing capacity. Merged trac_6568-jinja_migration_v2.patch
.
comment:34 Changed 12 years ago by
- Summary changed from [with patch, positive review] Migrate Notebook to JinjaFixed docstrings added by patch #6568 in `notebook.py` and `worksheet.py` to [with patch, positive review] Migrate Notebook to Jinja
comment:35 in reply to: ↑ 33 Changed 12 years ago by
Changed 11 years ago by
comment:36 Changed 11 years ago by
- Reviewers changed from William Stein to William Stein, Minh Van Nguyen
The patch trac_6568-manifest.patch
prevents repository corruption. A repository corruption can happen because trac_6568-jinja_migration_v2.patch
adds two new directories:
sage/server/notebook/templates/notebook/
sage/server/notebook/templates/worksheet/
If the file SAGE_ROOT/devel/sage-main/MANIFEST.in
is not patched to handle files under these new directories, those files won't be picked up when making a source release with sage -sdist
.
comment:37 Changed 11 years ago by
The "manifest" patch should fix #6884. If so, please close that ticket.
comment:38 Changed 11 years ago by
Merged patches in this order:
trac_6568-jinja_migration_v2.patch
trac_6568-manifest.patch
comment:39 Changed 5 years ago by
- Report Upstream set to N/A
timdumol: There should be a proper username on the patch. At the moment I see this
The username should not be a leet handle or anything like that. In order to properly credit contributors to Sage, the username should following this format:
You can set a proper username in the file
~/.hgrc
with something likeI say "should", not "must". If you don't want to, then at least fill in the "Author(s):" field with your full name. That way, it makes it easy to credit you.