﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=%E5%88%A9%E7%94%A8%E8%80%85%3AGandalf3%2FGSoC_2017%2FFinal_Report</id>
	<title>利用者:Gandalf3/GSoC 2017/Final Report - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=%E5%88%A9%E7%94%A8%E8%80%85%3AGandalf3%2FGSoC_2017%2FFinal_Report"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Gandalf3/GSoC_2017/Final_Report&amp;action=history"/>
	<updated>2026-04-20T04:52:12Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Gandalf3/GSoC_2017/Final_Report&amp;diff=153901&amp;oldid=prev</id>
		<title>Yamyam: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Gandalf3/GSoC_2017/Final_Report&amp;diff=153901&amp;oldid=prev"/>
		<updated>2018-06-28T21:23:17Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2018年6月28日 (木) 21:23時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Yamyam</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Gandalf3/GSoC_2017/Final_Report&amp;diff=153900&amp;oldid=prev</id>
		<title>wiki&gt;Gandalf3: /* GSoC 2017 Package Manager */</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Gandalf3/GSoC_2017/Final_Report&amp;diff=153900&amp;oldid=prev"/>
		<updated>2017-08-29T15:42:12Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;GSoC 2017 Package Manager&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=GSoC 2017 Package Manager=&lt;br /&gt;
&lt;br /&gt;
[[image:Gsoc-2017-package_manager_final_report_splash.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a final report for my GSoC 2017 project, a package manager for Blender. I pushed 187 commits (across two repositories) over the course of three months, and I learned a lot on the way. The package manager supports downloading and installing packages from multiple repositories, updating outdated packages, and browsing all those packages from inside blender. Having such a package manager allows blender addon developers to push updates to addons without waiting for a blender release, and it helps keep initial download sizes down by letting users download only the addons they want, when they want them.&lt;br /&gt;
&lt;br /&gt;
The package manager can be found in this branch: https://developer.blender.org/diffusion/B/browse/soc-2017-package_manager/&lt;br /&gt;
A repository generation tool can be found in this repository: https://developer.blender.org/diffusion/BPMA&lt;br /&gt;
&lt;br /&gt;
There's plenty still to do however:&lt;br /&gt;
&lt;br /&gt;
==Remaining work==&lt;br /&gt;
&lt;br /&gt;
===Metadata===&lt;br /&gt;
&lt;br /&gt;
As it seems Blender 2.8 will have a number of breaking API changes anyway, now seems like a good opportunity to add additional metadata for packages. &lt;br /&gt;
Blender addon names are rather like titles, often containing upper and lower case, spaces, non-ascii characters. These &lt;br /&gt;
The existing addon system uses module names &lt;br /&gt;
field that allows for&lt;br /&gt;
more reliable unique identification?&lt;br /&gt;
&lt;br /&gt;
More optional metadata could also be added, such as a changelog url.&lt;br /&gt;
&lt;br /&gt;
===Stability===&lt;br /&gt;
There are lots of small issues still which need to be ironed out.&lt;br /&gt;
* More testing (currently only the repository generation script has automated tests)&lt;br /&gt;
&lt;br /&gt;
===User experience===&lt;br /&gt;
* Support undo of recent uninstallations&lt;br /&gt;
* Better preferences display&lt;br /&gt;
Currently preferences are displayed inline with the package list (like the prexisting UI). This can feel cramped, would be nice to give package preferences their own page.&lt;br /&gt;
* Better progress display&lt;br /&gt;
Blender's python API for showing progress can only display a number at the cursor. This means per-package progress can't be shown very effectively.&lt;br /&gt;
Extending the API with more flexible progress display methods will help addons as well as the package manager.&lt;br /&gt;
* Interface doesn't scroll with package list&lt;br /&gt;
Scrolling packages moves the sidebar off the top of the window. It would be nicer if the sidebar was be fixed in place (i.e. put in a region).&lt;br /&gt;
&lt;br /&gt;
===Security===&lt;br /&gt;
* Enforced https&lt;br /&gt;
With free SSL cert providers like LetsEncrypt, https can likely be force enabled.&lt;br /&gt;
* Package signing&lt;br /&gt;
&lt;br /&gt;
===Farther down the road===&lt;br /&gt;
I've been keeping the idea that a &amp;quot;package&amp;quot; could consist of something besides an addon in mind.&lt;br /&gt;
While the package manager is currently limited to addons, in the future it could support installing themes, textures, nodepacks, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test it for yourself==&lt;br /&gt;
&lt;br /&gt;
1. Clone blender and checkout the `soc-2017-package_manager` branch: https://developer.blender.org/diffusion/B/browse/soc-2017-package_manager/.&lt;br /&gt;
&lt;br /&gt;
  git clone git://git.blender.org/blender.git&lt;br /&gt;
  git checkout soc-2017-package_manager&lt;br /&gt;
&lt;br /&gt;
2. Build: https://wiki.blender.org/index.php/Dev:Doc/Building_Blender.&lt;br /&gt;
You may wish to build without addons (or delete them from `&amp;lt;build dir&amp;gt;/bin/&amp;lt;version&amp;gt;/scripts/addons*` afterwards).&lt;br /&gt;
This is because system addons are typically installed where they can't be altered by the user without elevated permissions, so the package manager won't be able to uninstall/update them.&lt;br /&gt;
Plus, the test repo only contains official addons, so if left as is, all addons will be installed already.&lt;br /&gt;
&lt;br /&gt;
6. Add a repository in *User Preferences &amp;gt; Packages &amp;gt; Repositories* by clicking *edit repositories* and then the &amp;quot;plus&amp;quot; icon. You can use a local repository (see below), or use the ones I set up for testing:&lt;br /&gt;
This one contains a snapshot of the official addons traditionally bundled with blender: http://blendermonkey.com/bpkg&lt;br /&gt;
This one contains a few fake addons: http://blendermonkey.com/fakerepo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Repository creation===&lt;br /&gt;
&lt;br /&gt;
A local repository can be generated with the `generate_repository` script found here: https://developer.blender.org/diffusion/BPMA/.&lt;br /&gt;
Example usage:&lt;br /&gt;
&lt;br /&gt;
	./generate_repository /path/to/packages --baseurl 'http://localhost/'&lt;br /&gt;
&lt;br /&gt;
This will produce a `repo.json` file in the current directory, which can then&lt;br /&gt;
be copied to the server.  The baseurl is prepended to the filename of each&lt;br /&gt;
package to form the package's url (so for example, `http://localhost/node_wrangler.py`).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also see the user documentation here: https://wiki.blender.org/index.php?title=User:Gandalf3/GSoC_2017/User_Documentation&lt;br /&gt;
&lt;br /&gt;
===Known issues===&lt;br /&gt;
&lt;br /&gt;
I've noticed a couple issues which I believe are on the blender side of things, but I haven't fully tracked them down:&lt;br /&gt;
* After clicking a button, blender acts as if the mouse is over a completely different button until the mouse is moved.&lt;br /&gt;
* The repository list sometimes flickers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I of course want to thank my mentors Dr. Sybren and Mitchell Stokes for sharing their time and knowledge, and also&lt;br /&gt;
Ton and the rest of the Blender community for making Blender — clearly the most&lt;br /&gt;
amazing piece of software ever — exist.&lt;br /&gt;
&lt;br /&gt;
Thank you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Old demo video:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;b_iBVNmeBdM&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initial proposal: https://wiki.blender.org/index.php/User:Gandalf3/GSoC_2017/Proposal.&lt;/div&gt;</summary>
		<author><name>wiki&gt;Gandalf3</name></author>
		
	</entry>
</feed>