Project

General

Profile

How to contribute?

Added by Zrab Zrab almost 6 years ago

Hello,

I am swapping my mobile phone with a Samsung Galaxy S3 (probably) in the next few days.
Is there any way I can contribute to this project?
I know C and am quite good at C++ (better than at C, at least). However, I nearly don't know Java (got in touch for the first time some hours ago).
I can use git, I think. I use "git clone" on a regular basis, the rest is in active learning.

Well, I don't know what else is important to say. So, I hope that I can make myself useful.

P.S.: Sorry if the english is terrible. I mix sometimes languages in my head.


Replies (7)

RE: How to contribute? - Added by Paul Kocialkowski almost 6 years ago

We're always looking for new contributions! The first step to get started is to build Replicant, then read the DeveloperGuide and take a look at the current Tasks!
I'd be very happy to guide you through the process, even though I'm very busy currently.

RE: How to contribute? - Added by Zrab Zrab almost 6 years ago

Well, I tried to download the source, however I'm stuck quite at the beginning (Getting the source manifest).
../tools/repo init -u git://gitorious.org/replicant/manifest.git -b replicant-4.2 or python2 ../tools/repo init -u git://gitorious.org/replicant/manifest.git -b replicant-4.2
stops with the following message:
ValueError: unsupported pickle protocol: 4

Do you have any clue ?

RE: How to contribute? - Added by Paul Kocialkowski almost 6 years ago

That's very strange, I have never encountered such an issue. I'm running on Debian Jessie and Trisquel 6. What's your setup like?
I have both python 2 and 3 installed and I think repo is running with version 2 and goes fine. Perhaps the issue is with git? I have git version 1.9.1 here.

RE: How to contribute? - Added by Zrab Zrab almost 6 years ago

My setup is an ArchLinux which became a Parabola a month ago.
repo sends an warning message, when you try to use it with python3.
My git version is 1.9.2-1, python2 is 2.7.6-3
I realised, that running it with python3 makes the program crash, however there are still some files left. Thus, repo seems to get confused. I tried to clean everything and got a little bit further:

python2 ../tools/repo init -u git://gitorious.org/replicant/manifest.git -b replicant-4.2
Get https://gerrit.googlesource.com/git-repo
remote: Counting objects: 114, done
remote: Finding sources: 100% (114/114)
remote: Total 2791 (delta 1504), reused 2791 (delta 1504)
Réception d'objets: 100% (2791/2791), 2.24 MiB | 1020.00 KiB/s, done.
Résolution des deltas: 100% (1504/1504), done.
Depuis https://gerrit.googlesource.com/git-repo * [nouvelle branche] maint -> origin/maint * [nouvelle branche] master -> origin/master * [nouvelle branche] stable -> origin/stable * [nouvelle étiquette] v1.0 -> v1.0 * [nouvelle étiquette] v1.0.1 -> v1.0.1 * [nouvelle étiquette] v1.0.2 -> v1.0.2 * [nouvelle étiquette] v1.0.3 -> v1.0.3 * [nouvelle étiquette] v1.0.4 -> v1.0.4 * [nouvelle étiquette] v1.0.5 -> v1.0.5 * [nouvelle étiquette] v1.0.6 -> v1.0.6 * [nouvelle étiquette] v1.0.7 -> v1.0.7 * [nouvelle étiquette] v1.0.8 -> v1.0.8 * [nouvelle étiquette] v1.0.9 -> v1.0.9 * [nouvelle étiquette] v1.1 -> v1.1 * [nouvelle étiquette] v1.10.0 -> v1.10.0 * [nouvelle étiquette] v1.10.1 -> v1.10.1 * [nouvelle étiquette] v1.10.2 -> v1.10.2 * [nouvelle étiquette] v1.10.3 -> v1.10.3 * [nouvelle étiquette] v1.10.4 -> v1.10.4 * [nouvelle étiquette] v1.11.0 -> v1.11.0 * [nouvelle étiquette] v1.11.1 -> v1.11.1 * [nouvelle étiquette] v1.12.0 -> v1.12.0 * [nouvelle étiquette] v1.12.1 -> v1.12.1 * [nouvelle étiquette] v1.12.10 -> v1.12.10 * [nouvelle étiquette] v1.12.11 -> v1.12.11 * [nouvelle étiquette] v1.12.12 -> v1.12.12 * [nouvelle étiquette] v1.12.13 -> v1.12.13 * [nouvelle étiquette] v1.12.2 -> v1.12.2 * [nouvelle étiquette] v1.12.3 -> v1.12.3 * [nouvelle étiquette] v1.12.3.1 -> v1.12.3.1 * [nouvelle étiquette] v1.12.4 -> v1.12.4 * [nouvelle étiquette] v1.12.5 -> v1.12.5 * [nouvelle étiquette] v1.12.6 -> v1.12.6 * [nouvelle étiquette] v1.12.7 -> v1.12.7 * [nouvelle étiquette] v1.12.8 -> v1.12.8 * [nouvelle étiquette] v1.12.9 -> v1.12.9 * [nouvelle étiquette] v1.2 -> v1.2 * [nouvelle étiquette] v1.3 -> v1.3 * [nouvelle étiquette] v1.3.1 -> v1.3.1 * [nouvelle étiquette] v1.3.2 -> v1.3.2 * [nouvelle étiquette] v1.4 -> v1.4 * [nouvelle étiquette] v1.4.1 -> v1.4.1 * [nouvelle étiquette] v1.4.2 -> v1.4.2 * [nouvelle étiquette] v1.4.3 -> v1.4.3 * [nouvelle étiquette] v1.4.4 -> v1.4.4 * [nouvelle étiquette] v1.5 -> v1.5 * [nouvelle étiquette] v1.5.1 -> v1.5.1 * [nouvelle étiquette] v1.6 -> v1.6 * [nouvelle étiquette] v1.6.1 -> v1.6.1 * [nouvelle étiquette] v1.6.10 -> v1.6.10 * [nouvelle étiquette] v1.6.10.1 -> v1.6.10.1 * [nouvelle étiquette] v1.6.10.2 -> v1.6.10.2 * [nouvelle étiquette] v1.6.2 -> v1.6.2 * [nouvelle étiquette] v1.6.3 -> v1.6.3 * [nouvelle étiquette] v1.6.4 -> v1.6.4 * [nouvelle étiquette] v1.6.5 -> v1.6.5 * [nouvelle étiquette] v1.6.6 -> v1.6.6 * [nouvelle étiquette] v1.6.7 -> v1.6.7 * [nouvelle étiquette] v1.6.7.1 -> v1.6.7.1 * [nouvelle étiquette] v1.6.7.2 -> v1.6.7.2 * [nouvelle étiquette] v1.6.7.3 -> v1.6.7.3 * [nouvelle étiquette] v1.6.7.4 -> v1.6.7.4 * [nouvelle étiquette] v1.6.7.5 -> v1.6.7.5 * [nouvelle étiquette] v1.6.8 -> v1.6.8 * [nouvelle étiquette] v1.6.8.1 -> v1.6.8.1 * [nouvelle étiquette] v1.6.8.10 -> v1.6.8.10 * [nouvelle étiquette] v1.6.8.11 -> v1.6.8.11 * [nouvelle étiquette] v1.6.8.2 -> v1.6.8.2 * [nouvelle étiquette] v1.6.8.3 -> v1.6.8.3 * [nouvelle étiquette] v1.6.8.4 -> v1.6.8.4 * [nouvelle étiquette] v1.6.8.5 -> v1.6.8.5 * [nouvelle étiquette] v1.6.8.6 -> v1.6.8.6 * [nouvelle étiquette] v1.6.8.7 -> v1.6.8.7 * [nouvelle étiquette] v1.6.8.8 -> v1.6.8.8 * [nouvelle étiquette] v1.6.8.9 -> v1.6.8.9 * [nouvelle étiquette] v1.6.9 -> v1.6.9 * [nouvelle étiquette] v1.6.9.1 -> v1.6.9.1 * [nouvelle étiquette] v1.6.9.2 -> v1.6.9.2 * [nouvelle étiquette] v1.6.9.3 -> v1.6.9.3 * [nouvelle étiquette] v1.6.9.4 -> v1.6.9.4 * [nouvelle étiquette] v1.6.9.5 -> v1.6.9.5 * [nouvelle étiquette] v1.6.9.6 -> v1.6.9.6 * [nouvelle étiquette] v1.6.9.7 -> v1.6.9.7 * [nouvelle étiquette] v1.6.9.8 -> v1.6.9.8 * [nouvelle étiquette] v1.7 -> v1.7 * [nouvelle étiquette] v1.7.1 -> v1.7.1 * [nouvelle étiquette] v1.7.2 -> v1.7.2 * [nouvelle étiquette] v1.7.3 -> v1.7.3 * [nouvelle étiquette] v1.7.3.1 -> v1.7.3.1 * [nouvelle étiquette] v1.7.4 -> v1.7.4 * [nouvelle étiquette] v1.7.4.1 -> v1.7.4.1 * [nouvelle étiquette] v1.7.4.2 -> v1.7.4.2 * [nouvelle étiquette] v1.7.4.3 -> v1.7.4.3 * [nouvelle étiquette] v1.7.5 -> v1.7.5 * [nouvelle étiquette] v1.7.6 -> v1.7.6 * [nouvelle étiquette] v1.7.6.1 -> v1.7.6.1 * [nouvelle étiquette] v1.7.7 -> v1.7.7 * [nouvelle étiquette] v1.7.7.1 -> v1.7.7.1 * [nouvelle étiquette] v1.7.7.2 -> v1.7.7.2 * [nouvelle étiquette] v1.7.7.3 -> v1.7.7.3 * [nouvelle étiquette] v1.7.7.4 -> v1.7.7.4 * [nouvelle étiquette] v1.7.7.5 -> v1.7.7.5 * [nouvelle étiquette] v1.7.7.6 -> v1.7.7.6 * [nouvelle étiquette] v1.7.8 -> v1.7.8 * [nouvelle étiquette] v1.7.8.1 -> v1.7.8.1 * [nouvelle étiquette] v1.7.8.2 -> v1.7.8.2 * [nouvelle étiquette] v1.8.0 -> v1.8.0 * [nouvelle étiquette] v1.8.1 -> v1.8.1 * [nouvelle étiquette] v1.8.2 -> v1.8.2 * [nouvelle étiquette] v1.9.0 -> v1.9.0 * [nouvelle étiquette] v1.9.1 -> v1.9.1 * [nouvelle étiquette] v1.9.2 -> v1.9.2 * [nouvelle étiquette] v1.9.3 -> v1.9.3 * [nouvelle étiquette] v1.9.4 -> v1.9.4 * [nouvelle étiquette] v1.9.5 -> v1.9.5 * [nouvelle étiquette] v1.9.6 -> v1.9.6
Traceback (most recent call last):
File "/home/user/repos/replicant/replicant-4.2/.repo/repo/main.py", line 408, in <module>
_Main(sys.argv[1:])
File "/home/user/repos/replicant/replicant-4.2/.repo/repo/main.py", line 384, in _Main
result = repo._Run(argv) or 0
File "/home/user/repos/replicant/replicant-4.2/.repo/repo/main.py", line 143, in _Run
result = cmd.Execute(copts, cargs)
File "/home/user/repos/replicant/replicant-4.2/.repo/repo/subcmds/init.py", line 390, in Execute
self._SyncManifest(opt)
File "/home/user/repos/replicant/replicant-4.2/.repo/repo/subcmds/init.py", line 149, in _SyncManifest
print('Get %s' % GitConfig.ForUser().UrlInsteadOf(opt.manifest_url),
File "/home/user/repos/replicant/replicant-4.2/.repo/repo/git_config.py", line 219, in UrlInsteadOf
for new_url in self.GetSubSections('url'):
File "/home/user/repos/replicant/replicant-4.2/.repo/repo/git_config.py", line 206, in GetSubSections
return self._sections.get(section, set())
File "/home/user/repos/replicant/replicant-4.2/.repo/repo/git_config.py", line 230, in _sections
for name in self._cache.keys():
File "/home/user/repos/replicant/replicant-4.2/.repo/repo/git_config.py", line 247, in _cache
self._cache_dict = self._Read()
File "/home/user/repos/replicant/replicant-4.2/.repo/repo/git_config.py", line 251, in _Read
d = self._ReadPickle()
File "/home/user/repos/replicant/replicant-4.2/.repo/repo/git_config.py", line 269, in _ReadPickle
return pickle.load(fd)
File "/usr/lib/python2.7/pickle.py", line 1378, in load
return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self)
File "/usr/lib/python2.7/pickle.py", line 886, in load_proto
raise ValueError, "unsupported pickle protocol: %d" % proto
ValueError: unsupported pickle protocol: 4

Well, I still get stuck because of this pickle ...

I hope this helps to get things sorted ...

RE: How to contribute? - Added by Paul Kocialkowski almost 6 years ago

On my machines, the pickle protocol is used in version 2. The first file to be opened by repo is .repo/manifests.git/.repopickle_config and you can check the version using:

hexdump -C .repo/manifests.git/.repopickle_config
00000000  80 02 7d 71 00 28 55 0d  63 6f 72 65 2e 66 69 6c  |..}q.(U.core.fil|

It's the second digit in the hex dump (02 here). So the problem is in what's generating the pickle files apparently. Now perhaps python3 is still called at some point and creates the pickle in the new version?
How about setting python2 as a default for python, so that you don't have to worry about calling repo with python2?

RE: How to contribute? - Added by Josef Larsson over 5 years ago

I came a bit further by patching the repo-script, converting byte literals to string literals.

diff --normal repo repo_old
312,313c312
< print(str(ver_str.decode()))
< ver_act = ParseGitVersion(ver_str.decode())
---

ver_act = ParseGitVersion(ver_str)

542d540
< cur = cur.decode();

However, I got stuck later on. It might be that more files need to be patched in a similar way.

python3.3 ../tools/repo init -u git://gitorious.org/replicant/manifest.git -b replicant-4.2
warning: Python 3 support is currently experimental. YMMV.
Please use Python 2.6 - 2.7 instead.
git version 1.8.5.5
Get https://gerrit.googlesource.com/git-repo
remote: Counting objects: 117, done
remote: Finding sources: 100% (117/117)
remote: Total 2883 (delta 1526), reused 2883 (delta 1526)
Receiving objects: 100% (2883/2883), 2.43 MiB | 0 bytes/s, done.
Resolving deltas: 100% (1526/1526), done.
From https://gerrit.googlesource.com/git-repo * [new branch] maint -> origin/maint * [new branch] master -> origin/master * [new branch] stable -> origin/stable * [new tag] v1.0 -> v1.0 * [new tag] v1.0.1 -> v1.0.1 * [new tag] v1.0.2 -> v1.0.2 * [new tag] v1.0.3 -> v1.0.3 * [new tag] v1.0.4 -> v1.0.4 * [new tag] v1.0.5 -> v1.0.5 * [new tag] v1.0.6 -> v1.0.6 * [new tag] v1.0.7 -> v1.0.7 * [new tag] v1.0.8 -> v1.0.8 * [new tag] v1.0.9 -> v1.0.9 * [new tag] v1.1 -> v1.1 * [new tag] v1.10.0 -> v1.10.0 * [new tag] v1.10.1 -> v1.10.1 * [new tag] v1.10.2 -> v1.10.2 * [new tag] v1.10.3 -> v1.10.3 * [new tag] v1.10.4 -> v1.10.4 * [new tag] v1.11.0 -> v1.11.0 * [new tag] v1.11.1 -> v1.11.1 * [new tag] v1.12.0 -> v1.12.0 * [new tag] v1.12.1 -> v1.12.1 * [new tag] v1.12.10 -> v1.12.10 * [new tag] v1.12.11 -> v1.12.11 * [new tag] v1.12.12 -> v1.12.12 * [new tag] v1.12.13 -> v1.12.13 * [new tag] v1.12.14 -> v1.12.14 * [new tag] v1.12.15 -> v1.12.15 * [new tag] v1.12.16 -> v1.12.16 * [new tag] v1.12.2 -> v1.12.2 * [new tag] v1.12.3 -> v1.12.3 * [new tag] v1.12.3.1 -> v1.12.3.1 * [new tag] v1.12.4 -> v1.12.4 * [new tag] v1.12.5 -> v1.12.5 * [new tag] v1.12.6 -> v1.12.6 * [new tag] v1.12.7 -> v1.12.7 * [new tag] v1.12.8 -> v1.12.8 * [new tag] v1.12.9 -> v1.12.9 * [new tag] v1.2 -> v1.2 * [new tag] v1.3 -> v1.3 * [new tag] v1.3.1 -> v1.3.1 * [new tag] v1.3.2 -> v1.3.2 * [new tag] v1.4 -> v1.4 * [new tag] v1.4.1 -> v1.4.1 * [new tag] v1.4.2 -> v1.4.2 * [new tag] v1.4.3 -> v1.4.3 * [new tag] v1.4.4 -> v1.4.4 * [new tag] v1.5 -> v1.5 * [new tag] v1.5.1 -> v1.5.1 * [new tag] v1.6 -> v1.6 * [new tag] v1.6.1 -> v1.6.1 * [new tag] v1.6.10 -> v1.6.10 * [new tag] v1.6.10.1 -> v1.6.10.1 * [new tag] v1.6.10.2 -> v1.6.10.2 * [new tag] v1.6.2 -> v1.6.2 * [new tag] v1.6.3 -> v1.6.3 * [new tag] v1.6.4 -> v1.6.4 * [new tag] v1.6.5 -> v1.6.5 * [new tag] v1.6.6 -> v1.6.6 * [new tag] v1.6.7 -> v1.6.7 * [new tag] v1.6.7.1 -> v1.6.7.1 * [new tag] v1.6.7.2 -> v1.6.7.2 * [new tag] v1.6.7.3 -> v1.6.7.3 * [new tag] v1.6.7.4 -> v1.6.7.4 * [new tag] v1.6.7.5 -> v1.6.7.5 * [new tag] v1.6.8 -> v1.6.8 * [new tag] v1.6.8.1 -> v1.6.8.1 * [new tag] v1.6.8.10 -> v1.6.8.10 * [new tag] v1.6.8.11 -> v1.6.8.11 * [new tag] v1.6.8.2 -> v1.6.8.2 * [new tag] v1.6.8.3 -> v1.6.8.3 * [new tag] v1.6.8.4 -> v1.6.8.4 * [new tag] v1.6.8.5 -> v1.6.8.5 * [new tag] v1.6.8.6 -> v1.6.8.6 * [new tag] v1.6.8.7 -> v1.6.8.7 * [new tag] v1.6.8.8 -> v1.6.8.8 * [new tag] v1.6.8.9 -> v1.6.8.9 * [new tag] v1.6.9 -> v1.6.9 * [new tag] v1.6.9.1 -> v1.6.9.1 * [new tag] v1.6.9.2 -> v1.6.9.2 * [new tag] v1.6.9.3 -> v1.6.9.3 * [new tag] v1.6.9.4 -> v1.6.9.4 * [new tag] v1.6.9.5 -> v1.6.9.5 * [new tag] v1.6.9.6 -> v1.6.9.6 * [new tag] v1.6.9.7 -> v1.6.9.7 * [new tag] v1.6.9.8 -> v1.6.9.8 * [new tag] v1.7 -> v1.7 * [new tag] v1.7.1 -> v1.7.1 * [new tag] v1.7.2 -> v1.7.2 * [new tag] v1.7.3 -> v1.7.3 * [new tag] v1.7.3.1 -> v1.7.3.1 * [new tag] v1.7.4 -> v1.7.4 * [new tag] v1.7.4.1 -> v1.7.4.1 * [new tag] v1.7.4.2 -> v1.7.4.2 * [new tag] v1.7.4.3 -> v1.7.4.3 * [new tag] v1.7.5 -> v1.7.5 * [new tag] v1.7.6 -> v1.7.6 * [new tag] v1.7.6.1 -> v1.7.6.1 * [new tag] v1.7.7 -> v1.7.7 * [new tag] v1.7.7.1 -> v1.7.7.1 * [new tag] v1.7.7.2 -> v1.7.7.2 * [new tag] v1.7.7.3 -> v1.7.7.3 * [new tag] v1.7.7.4 -> v1.7.7.4 * [new tag] v1.7.7.5 -> v1.7.7.5 * [new tag] v1.7.7.6 -> v1.7.7.6 * [new tag] v1.7.8 -> v1.7.8 * [new tag] v1.7.8.1 -> v1.7.8.1 * [new tag] v1.7.8.2 -> v1.7.8.2 * [new tag] v1.8.0 -> v1.8.0 * [new tag] v1.8.1 -> v1.8.1 * [new tag] v1.8.2 -> v1.8.2 * [new tag] v1.9.0 -> v1.9.0 * [new tag] v1.9.1 -> v1.9.1 * [new tag] v1.9.2 -> v1.9.2 * [new tag] v1.9.3 -> v1.9.3 * [new tag] v1.9.4 -> v1.9.4 * [new tag] v1.9.5 -> v1.9.5 * [new tag] v1.9.6 -> v1.9.6
warning: Python 3 support is currently experimental. YMMV.
Please use Python 2.6 - 2.7 instead.
Get git://gitorious.org/replicant/manifest.git
remote: Counting objects: 2399, done.
remote: Compressing objects: 100% (1468/1468), done.
remote: Total 2399 (delta 836), reused 2202 (delta 771)
Receiving objects: 100% (2399/2399), 472.65 KiB | 0 bytes/s, done.
Resolving deltas: 100% (836/836), done.
From git://gitorious.org/replicant/manifest * [new branch] replicant -> origin/replicant * [new branch] replicant-2.2 -> origin/replicant-2.2 * [new branch] replicant-2.3 -> origin/replicant-2.3 * [new branch] replicant-4.0 -> origin/replicant-4.0 * [new branch] replicant-4.2 -> origin/replicant-4.2 * [new branch] replicant-ics-dev -> origin/replicant-ics-dev
Traceback (most recent call last):
File "/mnt/320/android/replicant/tools/.repo/repo/main.py", line 500, in <module>
_Main(sys.argv[1:])
File "/mnt/320/android/replicant/tools/.repo/repo/main.py", line 476, in _Main
result = repo._Run(argv) or 0
File "/mnt/320/android/replicant/tools/.repo/repo/main.py", line 155, in _Run
result = cmd.Execute(copts, cargs)
File "/mnt/320/android/replicant/tools/.repo/repo/subcmds/init.py", line 390, in Execute
self._SyncManifest(opt)
File "/mnt/320/android/replicant/tools/.repo/repo/subcmds/init.py", line 236, in _SyncManifest
m.MetaBranchSwitch(opt.manifest_branch)
File "/mnt/320/android/replicant/tools/.repo/repo/project.py", line 2634, in MetaBranchSwitch
self.Sync_LocalHalf(syncbuf)
File "/mnt/320/android/replicant/tools/.repo/repo/project.py", line 1170, in Sync_LocalHalf
self._InitWorkTree()
File "/mnt/320/android/replicant/tools/.repo/repo/project.py", line 2224, in _InitWorkTree
_lwrite(os.path.join(dotgit, HEAD), '%s\n' % self.GetRevisionId())
File "/mnt/320/android/replicant/tools/.repo/repo/project.py", line 51, in _lwrite
fd.write(content)
TypeError: 'str' does not support the buffer interface

RE: How to contribute? - Added by Paul Kocialkowski over 5 years ago

Maybe repo developers have a mailing list on which you could report that issue? Perhaps there is a bug tracker as well. Maybe get in touch with them one way or another!

    (1-7/7)